如果不是200,请检查status code of the response,从循环中中断。
我建议使用 css 选择器来搜索项目。
代码:
cities = []
with requests.Session() as session:
session.headers = {
'x-requested-with': 'XMLHttpRequest'
}
page = 1
while True:
url = 'https://www.kununu.com/de/volkswagen/kommentare/{}'.format(page)
print(url)
response = session.get(url)
if response.status_code!=200:
break
soup = BeautifulSoup(response.text, 'html.parser')
new_comments = [
cities.find_next_sibling('div').text.strip()
for cities in soup.select('.review-details.user-content.hidden-xs div.text-uppercase:contains(Stadt)')
]
print(new_comments)
cities += new_comments
#print(cities)
page += 1
print(cities)
在控制台上,您可以看到您的网址和城市。
https://www.kununu.com/de/volkswagen/kommentare/1
['Wolfsburg', 'Salzgitter', 'Wolfsburg', 'Wolfsburg', 'Kassel', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg']
https://www.kununu.com/de/volkswagen/kommentare/2
['Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Kassel', 'braunschweig', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Zwickau']
https://www.kununu.com/de/volkswagen/kommentare/3
['Dresden', 'Emden', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Hamburg']
https://www.kununu.com/de/volkswagen/kommentare/4
['Emden', 'Hannover', 'Wolfsburg', 'Hannover', 'Kassel', 'Hamburg', 'Baunatal', 'Wolfsburg', 'Wolfsburg', 'Emden']
https://www.kununu.com/de/volkswagen/kommentare/5
['Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Osnabrück', 'Kassel', 'Wolfsburg', 'braunschweig']
https://www.kununu.com/de/volkswagen/kommentare/6
['Wolfsburg', 'Wolfsburg', 'Kassel', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Kassel', 'Berlin', 'Wolfsburg', 'Emden']
https://www.kununu.com/de/volkswagen/kommentare/7
['Emden', 'Wolfsburg', 'Wolfsburg', 'Kassel', 'braunschweig', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg', 'Wolfsburg']
https://www.kununu.com/de/volkswagen/kommentare/8
['Kassel', 'Wolfsburg', 'Salzgitter', 'Salzgitter', 'Wolfsburg', 'Kassel', 'Wolfsburg', 'Kassel', 'Wolfsburg', 'Wolfsburg']
编辑:
cities = []
with requests.Session() as session:
session.headers = {
'x-requested-with': 'XMLHttpRequest'
}
page = 1
while True:
url = 'https://www.kununu.com/de/volkswagen/kommentare/{}'.format(page)
print(url)
response = session.get(url)
# if response.status_code!=200:
# break
soup = BeautifulSoup(response.text, 'html.parser')
if soup.select_one("ul.review-info span[itemprop='itemReviewed']").find_next('span').text=="30.Jan. 2008":
break
new_comments = [
cities.find_next_sibling('div').text.strip()
for cities in soup.select('.review-details.user-content.hidden-xs div.text-uppercase:contains(Stadt)')
]
print(new_comments)
cities += new_comments
#print(cities)
page += 1
print(cities)