页面源HTML和HTML由美丽的汤python

时间:2017-06-13 05:01:16

标签: python html firefox beautifulsoup

我正试图从IMDB中删除电影信息。在大多数情况下它可以工作,但对于一些电影,标题是由美丽的汤检索的HTML不同然后firefox显示为源代码。例如,在搜索IMDB的女巫时,我得到了这个页面:

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

所以我搜索电影,然后用这行代码获得电影网址:

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

适用于约80%的电影。我开始调试并找到导致其他电影出错的原因。我看着BeautifulSoup返回的'汤',并注意到firefox显示行的位置

<a href="/title/tt4263482/?ref_=adv_li_tt">The Witch</a>

汤有线

<a href="/title/tt4263482/?ref_=adv_li_tt">The VVitch: A New-England Folktale</a>

对于外国电影来说,它在firefox中显示美国称号,但在美丽的汤中显示外国称号。任何关于为什么会发生这种情况的见解以及可能是获取firefox所显示的确切html的方法将非常感激。

1 个答案:

答案 0 :(得分:0)

  

对于外国电影,它在firefox中显示美国名称,但在美丽的汤中显示外国标题

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

headers = {
    ...
    'Accept-Language' : 'en-US,en;q=0.8'
    ...
}

req = requests.get(url, headers=headers)
soup= BeautifulSoup(req, 'html.parser')
...