我正试图写一个程序,作为一个例子,将从这个网页的最高价格:
http://www.kayak.com/#/flights/JFK-PAR/2012-06-01/2012-07-01/1adults
首先,我可以通过执行以下操作轻松检索HTML:
from urllib import urlopen
from BeautifulSoup import BeautifulSoup
import mechanize
webpage = 'http://www.kayak.com/#/flights/JFK-PAR/2012-06-01/2012-07-01/1adults'
br = mechanize.Browser()
data = br.open(webpage).get_data()
soup = BeautifulSoup(data)
print soup
但是,原始的HTML不包含价格。浏览器做…它的事情(这里的澄清可能也会帮助我)…并且在构建DOM树时从其他地方检索价格。在
我被引导相信mechanize会像我的浏览器一样返回DOM树,我也相信这就是当我查看Chrome的开发人员工具页面视图时看到的(如果我不正确,我该如何获取存储在其中的价格信息?)为了查看DOM树,我需要告诉mechanize做些什么吗?在
一旦我可以将DOM树放入python中,我需要做的其他事情都应该很简单。谢谢!在
在python中,Mechanize和Beautiful soup是不可击败的web清除工具。在
但你需要明白什么是什么意思:
Mechanize
:它模仿网页上的浏览器功能。在BeautifulSoup
:HTML解析器,即使在HTML格式不好的情况下也能正常工作。在你的问题似乎是}不执行javascript,因此javascript产生的任何内容对于mechanize都是不可见的。在
javascript
。价格是通过使用javascript
的ajax调用填充的。^然而,{看看这个:http://github.com/davisp/python-spidermonkey/tree/master
这是一个使用js执行的mechanize和Beautiful soup的包装器。在
回答我自己的问题,因为从问起这些年来,我学到了很多。今天我将使用Selenium Webdriver来完成这项工作。Selenium正是我在2012年为这种类型的web抓取项目寻找的工具。在
https://www.seleniumhq.org/download/
http://chromedriver.chromium.org/
相关问题 更多 >
编程相关推荐