如何将数据输入网页以使用Python刮取结果输出?

时间:2011-08-13 00:49:40

标签: python scrape

我熟悉BeautifulSoup和urllib2来从网页上抓取数据。但是,如果在我想要刮取的结果返回之前需要在页面中输入参数怎么办?

我正在尝试使用此网站获取两个地址之间的地理距离:http://www.freemaptools.com/how-far-is-it-between.htm

我希望能够转到页面,输入两个地址,单击“显示”,然后提取“距离作为乌鸦飞行”和“按陆地运输距离”值并将其保存到字典中。< / p>

有没有办法使用Python将数据输入网页?

5 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

是的!尝试mechanize进行此类网页抓屏任务。

答案 2 :(得分:1)

我认为你也可以使用PySide / PyQt,因为他们有qtwebkit的浏览器核心,你可以控制浏览器打开页面,模拟人类动作(填充,点击......),然后刮取数据来自页面。 FMiner就是这样做的,它是我用PySide开发的网络抓取软件。

或者你可以试试phantomjs,它是一个简单的库来控制浏览器,但不是它的javascript而不是python语言。

答案 3 :(得分:0)

除了已经给出的答案之外,您还可以在该页面上执行请求。使用浏览器,您可以在与页面交互时检查网络(在工具/ Web开发人员工具下)的行为和操作。例如。 http://www.freemaptools.com/ajax/getaandb.php?a=Florida_Usa&b=New%20York_Usa&c=6052 - &gt;请求获取您期望的结果页面的查询。请求该页面并刮掉您想要的字段。恕我直言,页面请求比屏幕抓取(个案基础)更快。

但是,当然,您也可以随时进行屏幕抓取/浏览器模拟(Mechanize,Splinter)并使用无头浏览器(PhantomJS等)或您要使用的浏览器的浏览器驱动程序。

答案 4 :(得分:0)

查询可能已经解决。

您可以使用 Selenium WebDriver 来实现此目的。可以使用编程语言来交互网页。所有操作都可以像人类用户访问网页一样执行。