BeautifulSoup не возвращает пустые отзывы, как это исправить - PullRequest
0 голосов
/ 26 мая 2020
for page in range(0,26): #Remember to update the number of pages 
    url = 'https://www.metacritic.com/game/switch/pokemon-sword/user-reviews?page='+str(page)
    headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 5.1.1; SM-G928X Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36'}
    response  = requests.get(url, headers = user_agent)
    #time.sleep(rand.randint(3,30)) 
    soup = BeautifulSoup(response.text, 'html.parser')
    for review in soup.find_all('div', class_='review_content'):
        if review.find('div', class_='name') == None:
                       break 
        review_dict['name'].append(review.find('div', class_='name').find('a').text)
        review_dict['date'].append(review.find('div', class_='date').text)
        review_dict['rating'].append(review.find('div', class_='review_grade').find_all('div')[0].text)
        if review.find('span', class_='blurb blurb_expanded'):
            review_dict['review'].append(review.find('span', class_='blurb blurb_expanded').text)
        else:
            review_dict['review'].append(review.find('div', class_='review_body').find('span').text)

Это код от https://towardsdatascience.com/web-scraping-metacritic-reviews-using-beautifulsoup-63801bbe200e

Я пытаюсь получить все отзывы с определенного веб-сайта, но не могу получить "обзоры" "сделать так

1 Ответ

0 голосов
/ 26 мая 2020

Измените заголовок пользователя, чтобы он соответствовал заголовку в примере, который вы связали.

headers = {'User-agent': 'Mozilla/5.0'}

Без него класс review-content не возвращается в HTML запроса страницы. Попробуйте ввести print(soup), и вы увидите разницу между двумя ответами HTML. Похоже, сервер меняет ответ на основе указанного заголовка.

...