首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面源HTML与漂亮的soup检索到的HTML不一致

页面源HTML与漂亮的soup检索到的HTML不一致
EN

Stack Overflow用户
提问于 2017-06-13 13:01:16
回答 1查看 196关注 0票数 2

我正在尝试从IMDB抓取电影信息。在大多数情况下,它是有效的,但对于一些电影,标题是不同的HTML检索美丽的汤,然后是火狐显示的源代码。例如,当在IMDB中搜索witch时,我会得到这个页面:

http://www.imdb.com/search/title?production_status=released&release_date=2015,2017&title=The%20Witch&title_type=feature,documentary,short

所以我搜索电影,然后用下面这行代码得到电影的URL:

代码语言:javascript
复制
page = urlopen(url)
soup = BeautifulSoup(page, 'html.parser')
movieLink = soup.find('a', text = movieTitle)['href']
imdbLink = 'http://www.imdb.com' + movieLink

适用于大约80%的电影。我开始调试,找出是什么导致了其他电影的错误。

代码语言:javascript
复制
<a href="/title/tt4263482/?ref_=adv_li_tt">The Witch</a>

汤里有句台词

代码语言:javascript
复制
<a href="/title/tt4263482/?ref_=adv_li_tt">The VVitch: A New-England Folktale</a>

对于外国电影,它在firefox中显示美国片名,但在漂亮的汤中显示外国片名。任何关于为什么会发生这种情况的洞察力,或者是获取firefox显示的确切html的方法,都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-06-13 13:07:14

对于外国电影,

在火狐中显示美国片名,而在漂亮的汤中显示外国片名。

这是不同Accept-Language标头的振铃器。尝试:

代码语言:javascript
复制
headers = {
    ...
    'Accept-Language' : 'en-US,en;q=0.8'
    ...
}

req = requests.get(url, headers=headers)
soup= BeautifulSoup(req, 'html.parser')
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44512727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档