Python BeautifulSoup возвращает неверный HTML-код - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь получить названия фильмов из списка imdb. Моя проблема вместо того, чтобы возвращать английское имя, которое появляется в элементе проверки Google Chrome, оно возвращает японское имя.

Примечание: Я перепробовал все парсеры BeautifulSoup

Код:

import requests
from bs4 import BeautifulSoup
page=requests.get('https://www.imdb.com/list/ls040141830/')
soup = BeautifulSoup(page.text,'lxml')
name = soup.find('h3','lister-item-header')
print(name)

результат:

<h3 class="lister-item-header">
<span class="lister-item-index unbold text-primary">1.</span>
<a href="/title/tt0245429/?ref_=ttls_li_tt">Sen to Chihiro no kamikakushi</a>
<span class="lister-item-year text-muted unbold">(2001)</span>
</h3>

ожидаемый результат, как показано на странице источника: enter image description here

, поскольку вы можете видеть имя на английском, но я получаю его на японском языке, любая помощь будет оценена, спасибо.

1 Ответ

0 голосов
/ 11 октября 2018

Похоже, если вы заходите в imdb из клиента, не являющегося браузером, imdb переведет названия фильмов на язык оригинала.Вы сможете исправить это, добавив заголовок Accept-Language к запросам

import requests
from bs4 import BeautifulSoup
headers = {"Accept-Language": "en-US, en;q=0.5"}
page=requests.get('https://www.imdb.com/list/ls040141830/', headers = headers)
soup = BeautifulSoup(page.text,'lxml')
name = soup.find('h3','lister-item-header')
print(name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...