我正试图从IMDB中删除电影信息。在大多数情况下它可以工作,但对于一些电影,标题是由美丽的汤检索的HTML不同然后firefox显示为源代码。例如,在搜索IMDB的女巫时,我得到了这个页面:
所以我搜索电影,然后用这行代码获得电影网址:
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的方法将非常感激。
答案 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')
...