java phantomjs_Java爬虫:Jsoup + Phantomjs
(一)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相关推荐
- SpringBoot-Jsoup做java简单-爬虫
使用SpringBoot+Jsoup做java简单'爬虫' Jsoup简介 Jsoup是一款java的Html解析器,可以直接解析Html.针对网页提供了相关Api,可以通过Dom.Css.Jquer ...
- Jsoup:使用Java将爬虫得到的数据写入Excel,Jsoup得到的数据进行持久化,爬虫数据保存到本地Excel中
Jsoup:使用Java将爬虫得到的数据写入Excel,Jsoup得到的数据进行持久化,爬虫数据保存到本地Excel中 一.资源 EasyExcel使用教程 Jsoup爬虫教程 二.代码 xml依赖 ...
- Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索
Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...
- java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片
[Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...
- 详解用Java实现爬虫:HttpClient和Jsoup的介绍及使用(请求方式、请求参数、连接池、解析获取元素)
一.介绍:何为爬虫 网络爬虫(Web crawler)也叫做网络机器人 可以代替人 自动地在互联网中进行数据信息的采集和整理 是一种按照一定的规则 自动地抓取万维网信息的程序或者脚本 可以自动采集所有 ...
- java爬虫---Jsoup
简单易懂的java爬虫-Jsoup 做个简单的Demo,爬取酒店的基本信息,酒店名称.酒店地址.酒店星级.酒店的图片等.这里考虑在哪个网站爬取这些数据呢?第一个想到的就是X程上. Jsoup爬取的是网 ...
- java爬虫(jsoup)实现搜狗图片一键下载
java爬虫(jsoup)实现搜狗图片一键下载 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.no ...
- 采集 58同城 房产数据信息 | Java爬虫 Jsoup
一个数据采集系统(通俗的说就是爬虫),用来采集 58同城 房产 | 郑州中的房屋数据.使用 Java 语言和Jsoup库编写,这里分享给大家. 最后采集的数据结果 CSV 文件保存的,如下所示 说明 ...
- java爬虫解析script_详解java爬虫jsoup解析多空格class数据
在使用jsoup爬取其他网站数据的时候,发现class是带空格的多选择,如果直接使用doc.getElementsByClass("class的值"),这种方法获取不到想要的数据. ...
最新文章
- Canopy聚类算法
- legend3---3、lavarel页面post请求错误之后跳转
- Apache ECharts各种图表页面展示
- 怎么把 html做成雪花特效,CSS3 HTML5下雪特效 雪花飘飘
- 工业4.0围观,大炒作,大问题,大差距,你发现了吗?
- Python爬虫之(二)工具的使用
- oracle sqlplus执行脚本_oracle主、从自动切换方案?我是这样实现的
- 0/1背包问题的动态规划法
- 支付宝实现JS调起支付你必须知道的坑(40004 ACQ.INVALID_PARAMETER)
- Reflection(反射)
- linux用户态内核态通信,内核态与用户态通信 之 sockopt
- 最新官方新浪短网址API接口分享-附代码调用演示
- python语言提供的数字类型有哪些_Python语言中数字类型有哪些?
- 应用分发是什么意思?APP内测分发步骤
- 企业级呼叫中心 如何构建?
- html怎么设置下划线形状,科技常识:CSS如何给文字添加下划线样式
- c语言字符串字数统计,统计字符数 (C++代码)
- 印度区块链项目Matic Network的应用场景分析
- (转)top关键字与top表达式(SQLServer)
- 奥塔在线:vsftp用户及权限管理体系初探
热门文章
- 2.Maven特点,Maven约定,建立第一个Maven项目
- const对象,NULL和nullptr,C++中创建对象数组
- Hobbit玩转Zynq MPSoC系列之2:TPG输入+VCU编码+rtp网络传输
- ImportError: /home/kzl/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
- 高人对libsvm的经典总结(全面至极)
- 持续集成工具jenkins的部署--Windows篇
- 库对比工具mysqldiff使用
- docker和docker-compose 端口映射
- 201621123085 《Java程序设计》第2周学习总结
- 开启物联网的真正潜力需要在更大程度上克服数据挑战