使用JSoup进行数据刮擦?

时间:2014-04-02 06:27:19

标签: java web-scraping jsoup

我希望通过网页抓取从此网站获取数据。 http://www.upmandiparishad.in/commodityWiseAll.aspx enter image description here

之前我使用JSoup来获取更多静态HTML网站,但这对我来说很难,因为在我获得网站上的HTML表之前必须点击一个按钮而我不知道它是否可能使用JSoup来操作按钮。

点击此按钮后,我会得到一个HTML表格。

那么我怎样才能做到这一点?

提前致谢

2 个答案:

答案 0 :(得分:0)

您似乎已将JSoup用作html解析器,但未将其用作请求/响应处理程序。 我会给你两个选择:

选项1:

  • 弄清楚按下该按钮时发生了什么。按钮通常只是一个POST请求,因此获取该POST请求的信息(Google Chrome开发工具是您的朋友)。
  • 使用JSoup Connect interface(检查POST方法)
  • 模拟POST
  • 如您所知,使用JSoup解析html代码

选项2:

  • 使用适当的工具处理浏览器实例(例如Selenium Webdriver)并在您的网页中执行您想要的任何操作(填写表单,提交....)。
  • 进入您想要的网页后,获取HTML代码并将其与JSoup一起使用以提取您的信息。
祝你好运!

答案 1 :(得分:0)

假设页面有很多输入标签,就像文本输入和密码一样,我猜你知道这个。现在你必须传递数据(“在这里命名”,“在这里输入值”)。post()将操纵一个按钮。

示例:假设这是html代码<INPUT TYPE=SUBMIT NAME="submit" VALUE="SUBMIT" ALIGN = "center">

然后这将是你的自动化命令!

Jsoup.connect("<url here>").userAgent("Chrome").data("submit","SUBMIT").post();