BS4:遍历页面 return 相同的结果 Python

BS4 : Iterate through page return same result in Python

为什么这个代码 return 相同的电影标题(第一页的标题)?

url_base = "https://www.senscritique.com/liste/Le_meilleur_du_meilleur_des_meilleurs/772407#page-"

for page in range(1, 3): #nb_pages+1):
    url_n = url_base + str(page)
    print(url_n)
    html_n = urllib2.urlopen(url_n).read().decode('utf-8')
    soup_n = BeautifulSoup(html_n, 'html.parser')
    for film in soup_n.find_all('li', attrs={"class": u"elli-item"}):
        print(film.find('a', attrs={"class": u"elco-anchor"}).text)

该页面正在通过 Ajax 从不同 url 加载标题:

import requests
from bs4 import BeautifulSoup

# https://www.senscritique.com/liste/Le_meilleur_du_meilleur_des_meilleurs/772407#page-
url_base = 'https://www.senscritique.com/sc2/liste/772407/page-{}.ajax'

for page in range(1, 3): #nb_pages+1):
    url_n = url_base.format(page)
    soup_n = BeautifulSoup(requests.get(url_n).content, 'html.parser')
    for film in soup_n.find_all('li', attrs={"class": u"elli-item"}):
        print(film.find('a', attrs={"class": u"elco-anchor"}).text)

打印:

Old Boy
Lucy
Le Loup de Wall Street
Tomboy
Dersou Ouzala
Les Lumières de la ville
12 hommes en colère
Gravity
Hunger Games : La Révolte, partie 1
Le Parrain
La Nuit du chasseur
La Belle et la Bête
The Big Lebowski
Interstellar
Le Ruban blanc
Vive la France
La vie est belle
Le Hobbit : La Bataille des cinq armées
Pulp Fiction
Melancholia
Her
The Grand Budapest Hotel
The Tree of Life
Le Prestige
Conan le Barbare
Ninja Turtles
Jurassic Park III
Rebelle
Mud, sur les rives du Mississippi
Détour mortel
Only God Forgives
A Serious Man
Bienvenue à Gattaca
Colombiana
Rome, ville ouverte
Man of Steel
Black Book
La Rafle
Aliens : Le Retour
Les Petits Mouchoirs
Mysterious Skin
Rashômon
Lolita
Le Mystère de la matière noire
Godzilla
9 mois ferme
Pour une poignée de dollars
Les Enfants du paradis
Drive
Fight Club
Evil Dead
Le Labyrinthe
Sous les jupes des filles
Le Seigneur des Anneaux : La Communauté de l'anneau
La Chasse
Le Locataire
Gone Girl
La Planète des singes : L'Affrontement
L'Homme sans âge
Cinquante nuances de Grey

改成这样。问题部分是 python3.

中的 urllib2

The urllib2 module has been split across several modules in Python 3 named urllib.request and urllib.error. The 2to3 tool will automatically adapt imports when converting your sources to Python 3.

from bs4 import BeautifulSoup
from urllib.request import urlopen

url_base = "https://www.senscritique.com/liste/Le_meilleur_du_meilleur_des_meilleurs/772407#page-"

for page in range(1, 3): #nb_pages+1):
    url_n = url_base + str(page)
    print(url_n)
    html_n = urlopen(url_n).read().decode('utf-8')
    soup_n = BeautifulSoup(html_n, 'html.parser')
    for film in soup_n.find_all('li', attrs={"class": u"elli-item"}):
        print(film.find('a', attrs={"class": u"elco-anchor"}).text)

输出

Old Boy
Lucy
Le Loup de Wall Street
Tomboy
Dersou Ouzala
Les Lumières de la ville
12 hommes en colère
Gravity
Hunger Games : La Révolte, partie 1
Le Parrain
La Nuit du chasseur
La Belle et la Bête
The Big Lebowski
Interstellar
Le Ruban blanc
Vive la France
La vie est belle
Le Hobbit : La Bataille des cinq armées
Pulp Fiction
Melancholia
Her
The Grand Budapest Hotel
The Tree of Life
Le Prestige
Conan le Barbare
Ninja Turtles
Jurassic Park III
Rebelle
Mud, sur les rives du Mississippi
Détour mortel
https://www.senscritique.com/liste/Le_meilleur_du_meilleur_des_meilleurs/772407#page-2
Old Boy
Lucy
Le Loup de Wall Street
Tomboy
Dersou Ouzala
Les Lumières de la ville
12 hommes en colère
Gravity
Hunger Games : La Révolte, partie 1
Le Parrain
La Nuit du chasseur
La Belle et la Bête
The Big Lebowski
Interstellar
Le Ruban blanc
Vive la France
La vie est belle
Le Hobbit : La Bataille des cinq armées
Pulp Fiction
Melancholia
Her
The Grand Budapest Hotel
The Tree of Life
Le Prestige
Conan le Barbare
Ninja Turtles
Jurassic Park III
Rebelle
Mud, sur les rives du Mississippi
Détour mortel