我正在尝试从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:
page = urlopen(url)
soup = BeautifulSoup(page, 'html.parser')
movieLink = soup.find('a', text = movieTitle)['href']
imdbLink = 'http://www.imdb.com' + movieLink适用于大约80%的电影。我开始调试,找出是什么导致了其他电影的错误。
<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的方法,都将不胜感激。
发布于 2017-06-13 13:07:14
对于外国电影,
在火狐中显示美国片名,而在漂亮的汤中显示外国片名。
这是不同Accept-Language标头的振铃器。尝试:
headers = {
...
'Accept-Language' : 'en-US,en;q=0.8'
...
}
req = requests.get(url, headers=headers)
soup= BeautifulSoup(req, 'html.parser')
...https://stackoverflow.com/questions/44512727
复制相似问题