Java爬虫:Jsoup + Phantomjs

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java爬虫:Jsoup + Phantomjs脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

(一)Jsoup

Jsoup是一个Java开HTML解析器,可直接解析某个url地址、HTML文本内容。通过Dom或Css选择器来查找、取出数据,实现爬虫。

maven坐标

    <dependency>       <groupId>org.jsoup</groupId>       <artifactId>jsoup</artifactId>       <version>1.11.2</version>     </dependency>

Jsoup开发指南(中文版)

演示Demo

import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements;  import java.io.IOException;  public class JsoupDemo {     public static void main( String[] args ) throws IOException {         Document doc = Jsoup.connect("http://www.baidu.COM").get();          System.out.PRintln("tITle:"+doc.title());          Elements es = doc.select("area");         //Elements es = doc.getElementByTag("area");                  System.out.println("百度图片点击路径:"+es.attr("href"));     } } 

(二 )PhantomJs

PhantomJS是一个可编程的无头浏览器。通过PhantomJs可以采集Ajax生成的内容。

无头浏览器:一个完整的浏览器内核,包括js解析引擎,渲染引擎,请求处理等,但是不包括显示和用户交互页面的浏览器。

PhantomJs官方文档

步骤:

  1. 下载安装,配置环境变量
  2. 编写并执行js脚本

演示Demo

VAR page = require("webpage").create(),    //网页对象      system = require("system"),            //系统对象      address,t;  phantom.outputEncoding='gbk';    //设置输出编码 //phantom.outputEncoding='utf-8';    //设置输出编码  var arr = system.args;  //判断参数是否传入 if(arr.length==1){     console.LOG("请输入待请求url");     phantom.exit(0); } else {     address = arr[1];     console.log("开始访问页面:"+address);     t = Date.now();          //访问页面     page.open(address,function(status){         if(status !== 'success'){             console.log('page faild to load.');             phantom.exit();         } else {             t = Date.now() - t;             console.log("页面访问结束:耗时:"+t+"ms");                          //引入jquery             page.includeJs("http://code.jquery.com/jquery-2.2.4.min.js",function(){                 var result = (page.evaluate(function(){                     return $('area').attr('href');                 }));                 console.log("图片点击路径:"+result);                 phantom.exit();             })         }     }) } 

假设文件名为 c:/baidu.js;在命令行中执行 phantomjs c:/baidu.js http://www.baidu.com

java 调用Phantomjs

演示Demo

 import java.io.*;  public class PhantomJsDemo  {     public static void main( String[] args ) throws IOException {         Runtime rn = Runtime.getRuntime();         String url = "http://www.baidu.com"         Process process = rn.exec("phantomjs c:/baidu.js " + url);          BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));         StringBuffer sb = new StringBuffer();         String temp = "";         while((temp=br.readLine())!=null){             sb.append(temp);         }          System.out.println(sb.toString());     } } 

脚本宝典总结

以上是脚本宝典为你收集整理的Java爬虫:Jsoup + Phantomjs全部内容,希望文章能够帮你解决Java爬虫:Jsoup + Phantomjs所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。