我试图从imdb列表中获取电影名称,我的问题是,它没有返回出现在google chrome inspect元素中的英语名称,而是返回了日语名称。
注意: 我尝试了所有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>
如您所见,该名称是英文的,但是即时获得日语的帮助,将不胜感激。
答案 0 :(得分:2)
好像您从非浏览器客户端访问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)