网页使用Beautifulsoup刮,带来不同的内容

时间:2014-03-16 18:15:08

标签: python html beautifulsoup html-parsing

如果您访问http://www.imdb.com/title/tt2375692/episodes?season=1 在这里,你会看到第1季,第1集的发布日期是2014年1月25日,

这是我用来刮的代码。

    req = urllib2.Request('http://www.imdb.com/title/tt2375692/episodes?season=1')
    self.diziPage = urllib2.urlopen(req).read()
    self.diziSoup = BeautifulSoup(self.diziPage,from_encoding="utf8")

我刮掉网站后,除了空气日期外,一切都很好, 第1集的播出日期是2014年4月20日,当我访问时没有出现,所有其他信息都是正确的。

我认为这可能是因为标题我做了一些实验但是没有用。

2 个答案:

答案 0 :(得分:2)

当我使用25 Jan. 2014抓取日期时,我得到BeautifulSoup。首先,找到第一集I.的链接,然后通过获取链接父级的父级来获取剧集块,然后按类查找日期:

import urllib2
from bs4 import BeautifulSoup


url = "http://www.imdb.com/title/tt2375692/episodes?season=1"

soup = BeautifulSoup(urllib2.urlopen(url))

episode1 = soup.find('a', {'title': 'I.'}).parent.parent
print episode1.find('div', {'class': 'airdate'}).text.strip()

打印:

25 Jan. 2014

答案 1 :(得分:0)

似乎,imdb根据访客位置提供不同的播出日期。 这就是为什么我得到不同的数据,我认为他们检查访问者的IP或其他什么。