【问题标题】:How can I input data into a webpage to scrape the resulting output using Python?如何将数据输入网页以使用 Python 抓取结果输出?
【发布时间】:2011-08-13 00:49:39
【问题描述】:

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

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

我希望能够进入该页面,输入两个地址,单击“显示”,然后提取“乌鸦飞的距离”和“陆路运输的距离”值​​并将它们保存到字典中。

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

【问题讨论】:

标签: python scrape


【解决方案1】:
【解决方案2】:

是的!尝试mechanize 来完成这种网页抓取任务。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        查询可能已解决。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-17
          • 1970-01-01
          • 2016-11-04
          • 1970-01-01
          相关资源
          最近更新 更多