2011-05-05 24 views
1

我正在构建一个web刮板,并且需要获取它实际出现在页面上的html页面源。但是,我只能获得有限的html源代码,其中不包含所需的信息。我认为我要么看到它的JavaScript加载否则可能我没有得到完整的信息,因为我没有正确的认证?我的结果与Chrome浏览器中的“查看源代码”相同,当我想要的是Chrome的“检查元素”显示的内容时。输入航班信息和搜索后,我的测试是cimber.dk。获取HTML源代码,包括javascript和身份验证的结果

我在python中编码,并尝试urllib2库。然后我听说硒对此很好,所以我也尝试过。但是,这也让我获得了相同的有限页面源。

这是我使用Firebug查看参数后用urllib2试过的。 (我打开cimber.dk后删除了所有的cookies,因此我开始使用“clean slate”)

url = 'https://www.cimber.dk/booking/' 
values = {'ARRANGE_BY' : 'D',...} #one for each value 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor()) 
#Using HTTPRedirectHandler instead of HTTPCookieProcessor gives the same. 
urllib2.install_opener(opener) 
request = urllib2.Request(url) 
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0')] 
request.add_header(....) # one for each header, also the cookie one 
p = urllib.urlencode(values) 
data = opener.open(request, p).read() 
# data is now the limited source, like Chrome View Source 

#I tried to add the following in some vain attempt to do a redirect. 
#The result is always "HTTP Error 400: Bad request" 

f = opener.open('https://wftc2.e-travel.com/plnext/cimber/Override.action') 
data = f.read() 
f.close() 

回答

2

大多数类似这样的库不支持JavaScript。

如果你想要javascript,你需要自动化一个现有的浏览器或浏览器引擎,或者得到一个非常庞大的大型库,这本质上是一个先进的网络爬虫。

相关问题