如何爬取网页中js动态生成的数据

JavaScript027

如何爬取网页中js动态生成的数据,第1张

String url = "http://xinjinqiao.tprtc.com/admin/main/flrpro.do"

try {

    WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10)

    //设置webClient的相关参数

    webClient.getOptions().setJavaScriptEnabled(true)

    webClient.getOptions().setCssEnabled(false)

    webClient.setAjaxController(new NicelyResynchronizingAjaxController())

    //webClient.getOptions().setTimeout(50000)

    webClient.getOptions().setThrowExceptionOnScriptError(false)

    //模拟浏览器打开一个目标网址

    HtmlPage rootPage = webClient.getPage(url)

    System.out.println("为了获取js执行的数据 线程开始沉睡等待")

    Thread.sleep(3000)//主要是这个线程的等待 因为js加载也是需要时间的

    System.out.println("线程结束沉睡")

    String html = rootPage.asText()

    System.out.println(html)

} catch (Exception e) {

}

1、JS获取表格的简便方法:获取tbody:tBodies 获取thead:tHead 获取tfoot:tFoot 获取行tr:rows 获取列td:cells

使用实例: oTable.tBodies[0] oTable.tHead[0] oTable.tFoot[0] oTable.rows[1] oTable.cells[1]

2、遍历

var oTable=document.getElementById("表格id")

oTable.tBodies[0]可以看成是rows和cells组成的二维数组,用两个for循环嵌套遍历一下就可以了

想定时抓取某个接口的数据,然后解析数据,通过邮件通知给我。

1、 https 用来发送网络请求

2、 node-schedule 用来实现定时任务

3、 nodemailer 用来发送邮件

介绍一下简单用法

我这里使用的QQ邮箱,使用第三方发送邮件需要打开授权,我这里开启的是 POP3/IMAP ,然后用授权码登录。 授权方法->

哈哈,还是比较成功的,达到了我预期的目标。

邮件接收的延迟比较大,大概3分钟左右,耐心等候,另外我在QQ邮箱的发件箱里没看到已发送的邮件,可能不会显示。

demo就不发了,比较简单,这几个模块组装起来就可以运行了。