(一)Jsoup

Jsoup是一个Java开源HTML剖析器,可直接剖析某个URL地点、HTML文本内容。经由过程Dom或Css选择器来查找、掏出数据,完成爬虫。

maven坐标

org.jsoup

jsoup

1.11.2

演示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剖析引擎,衬着引擎,要求处置惩罚等,然则不包含显现和用户交互页面的浏览器。

步骤:

下载安装,设置环境变量

编写并实行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 phantomjs_Java爬虫:Jsoup + Phantomjs相关推荐

  1. SpringBoot-Jsoup做java简单-爬虫

    使用SpringBoot+Jsoup做java简单'爬虫' Jsoup简介 Jsoup是一款java的Html解析器,可以直接解析Html.针对网页提供了相关Api,可以通过Dom.Css.Jquer ...

  2. Jsoup:使用Java将爬虫得到的数据写入Excel,Jsoup得到的数据进行持久化,爬虫数据保存到本地Excel中

    Jsoup:使用Java将爬虫得到的数据写入Excel,Jsoup得到的数据进行持久化,爬虫数据保存到本地Excel中 一.资源 EasyExcel使用教程 Jsoup爬虫教程 二.代码 xml依赖 ...

  3. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  4. java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片

    [Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...

  5. 详解用Java实现爬虫:HttpClient和Jsoup的介绍及使用(请求方式、请求参数、连接池、解析获取元素)

    一.介绍:何为爬虫 网络爬虫(Web crawler)也叫做网络机器人 可以代替人 自动地在互联网中进行数据信息的采集和整理 是一种按照一定的规则 自动地抓取万维网信息的程序或者脚本 可以自动采集所有 ...

  6. java爬虫---Jsoup

    简单易懂的java爬虫-Jsoup 做个简单的Demo,爬取酒店的基本信息,酒店名称.酒店地址.酒店星级.酒店的图片等.这里考虑在哪个网站爬取这些数据呢?第一个想到的就是X程上. Jsoup爬取的是网 ...

  7. java爬虫(jsoup)实现搜狗图片一键下载

    java爬虫(jsoup)实现搜狗图片一键下载 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.no ...

  8. 采集 58同城 房产数据信息 | Java爬虫 Jsoup

    一个数据采集系统(通俗的说就是爬虫),用来采集 58同城 房产 | 郑州中的房屋数据.使用 Java 语言和Jsoup库编写,这里分享给大家. 最后采集的数据结果 CSV 文件保存的,如下所示 说明 ...

  9. java爬虫解析script_详解java爬虫jsoup解析多空格class数据

    在使用jsoup爬取其他网站数据的时候,发现class是带空格的多选择,如果直接使用doc.getElementsByClass("class的值"),这种方法获取不到想要的数据. ...

最新文章

  1. Canopy聚类算法
  2. legend3---3、lavarel页面post请求错误之后跳转
  3. Apache ECharts各种图表页面展示
  4. 怎么把 html做成雪花特效,CSS3 HTML5下雪特效 雪花飘飘
  5. 工业4.0围观,大炒作,大问题,大差距,你发现了吗?
  6. Python爬虫之(二)工具的使用
  7. oracle sqlplus执行脚本_oracle主、从自动切换方案?我是这样实现的
  8. 0/1背包问题的动态规划法
  9. 支付宝实现JS调起支付你必须知道的坑(40004 ACQ.INVALID_PARAMETER)
  10. Reflection(反射)
  11. linux用户态内核态通信,内核态与用户态通信 之 sockopt
  12. 最新官方新浪短网址API接口分享-附代码调用演示
  13. python语言提供的数字类型有哪些_Python语言中数字类型有哪些?
  14. 应用分发是什么意思?APP内测分发步骤
  15. 企业级呼叫中心 如何构建?
  16. html怎么设置下划线形状,科技常识:CSS如何给文字添加下划线样式
  17. c语言字符串字数统计,统计字符数 (C++代码)
  18. 印度区块链项目Matic Network的应用场景分析
  19. (转)top关键字与top表达式(SQLServer)
  20. 奥塔在线:vsftp用户及权限管理体系初探

热门文章

  1. 2.Maven特点,Maven约定,建立第一个Maven项目
  2. const对象,NULL和nullptr,C++中创建对象数组
  3. Hobbit玩转Zynq MPSoC系列之2:TPG输入+VCU编码+rtp网络传输
  4. ImportError: /home/kzl/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
  5. 高人对libsvm的经典总结(全面至极)
  6. 持续集成工具jenkins的部署--Windows篇
  7. 库对比工具mysqldiff使用
  8. docker和docker-compose 端口映射
  9. 201621123085 《Java程序设计》第2周学习总结
  10. 开启物联网的真正潜力需要在更大程度上克服数据挑战