Python BeautifulSoup返回错误的html代码

2024-06-09 05:46:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从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

正如你可以看到英文名称,但我得到它在日本任何帮助将不胜感激谢谢。你知道吗


Tags: textnameimport名称pageitemrequestsh3
1条回答
网友
1楼 · 发布于 2024-06-09 05:46:14

似乎如果您从非浏览器客户端访问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)

相关问题 更多 >