Как очистить более одной страницы отзывов критиков от Rotten Tomatoes?

#python #web-scraping #scrape

#python #веб-очистка #очистить

Вопрос:

Я использовал этот скребок, чтобы очистить отзывы критиков для этого URL: https://www.rottentomatoes.com/m/avengers_endgame/reviews Хотя я долго ломал голову над тем, как просмотреть дополнительные страницы, поскольку в настоящее время это приводит к потере отзывов критиков о первой странице. Кто-нибудь знает, как бы я поступил по этому поводу?

 import selenium
from selenium import webdriver
import pandas as pd
driver = webdriver.Chrome()
driver.get("https://www.rottentomatoes.com/m/avengers_endgame/reviews")
review_1df = pd.DataFrame(columns=['Date', 'Reviewer', 'Website', 'Review', 'Score'])
dates = []
reviews = []
scores = []
newscores = []
names = []
sites = []
results = driver.find_elements_by_class_name("review_area")
reviewnum = 1
reviewers = driver.find_elements_by_class_name("col-xs-8")

for r in results:
    dates.append(r.find_element_by_class_name('subtle').text)
    reviews.append(r.find_element_by_class_name('the_review').text)
    revs = r.find_element_by_class_name('review_desc')
    scores.append(revs.find_element_by_class_name('subtle').text)
    
    for r in reviewers:
        names.append(r.find_element_by_xpath('//*[@id="reviews"]/div[2]/div[4]/div['  str(reviewnum)  ']/div[1]/div[3]/a[1]').text)
        sites.append(r.find_element_by_xpath('//*[@id="reviews"]/div[2]/div[4]/div['  str(reviewnum) ']/div[1]/div[3]/a[2]/em').text)
        reviewnum =1

for score in scores:
    if score == ('Full Review'):
        newscores.append('no score')
    else:
        score2 = score[14:]
        newscores.append(score2)
        
review_1df['Date'] = dates
review_1df['Review'] = reviews
review_1df['Score'] = newscores
review_1df['Reviewer'] = names
review_1df['Website'] = sites
  

Ответ №1:

Вы можете использовать параметры URL, чтобы перейти к следующей странице отзывов и повторить те же шаги. Например, следующий URL-адрес приведет вас ко второй странице отзывов:

 https://www.rottentomatoes.com/m/avengers_endgame/reviews?type=amp;sort=amp;page=2
  

Обратите внимание, что в параметрах type=amp;sort=amp;page=2 вы также можете указать сортировку и тип. Измените его на page=3 , чтобы перейти к третьей странице.

Вам также нужно будет добавить проверку, чтобы узнать, существует ли страница вообще. Например, вы не получите отзывов по этому URL:

 https://www.rottentomatoes.com/m/avengers_endgame/reviews?type=amp;sort=amp;page=200000