资讯专栏INFORMATION COLUMN

Java爬虫:Jsoup + Phantomjs

songze / 3348人阅读

摘要:一是一个开源解析器,可直接解析某个地址文本内容。通过或选择器来查找取出数据,实现爬虫。无头浏览器一个完整的浏览器内核包括解析引擎渲染引擎请求处理等但是不包括显示和用户交互页面的浏览器。

(一)Jsoup

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

maven坐标

    
      org.jsoup
      jsoup
      1.11.2
    

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官方文档

步骤:

下载安装,配置环境变量

编写并执行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());
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93523.html

相关文章

  • Java爬虫Jsoup + Phantomjs

    摘要:一是一个开源解析器,可直接解析某个地址文本内容。通过或选择器来查找取出数据,实现爬虫。无头浏览器一个完整的浏览器内核包括解析引擎渲染引擎请求处理等但是不包括显示和用户交互页面的浏览器。 (一)Jsoup Jsoup是一个Java开源HTML解析器,可直接解析某个URL地址、HTML文本内容。通过Dom或Css选择器来查找、取出数据,实现爬虫。 maven坐标 or...

    fai1017 评论0 收藏0
  • XXL-CRAWLER v1.2.2 发布,分布式爬虫框架

    摘要:新特性系统底层重构,规范包名采集线程白名单过滤优化,避免冗余失败重试增强渲染方式采集能力,原生新提供,支持以方式采集页面数据支持采集非页面,如接口等,直接输出响应数据选择即可简介是一个分布式爬虫框架。默认提供单机版爬虫。 v1.2.2 新特性 1、系统底层重构,规范包名; 2、采集线程白名单过滤优化,避免冗余失败重试; 3、增强JS渲染方式采集能力,原生新提供 SeleniumPha...

    zhaofeihao 评论0 收藏0
  • Java爬虫之利用Jsoup自制简单的搜索引擎

    摘要:的官方网址为,其使用手册网址为本次分享将实现的功能为利用爬取某个搜索词语暂仅限英文的百度百科的介绍部分,具体的功能介绍可以参考博客爬虫自制简单的搜索引擎。   Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。Jsoup的官方网址为: https:...

    GHOST_349178 评论0 收藏0
  • Java爬虫之下载IMDB中Top250电影的图片

    摘要:介绍在博客爬虫爬取豆瓣电影图片中我们利用的爬虫框架,将豆瓣电影图片下载到自己电脑上。那么,在的爬虫的也可以下载图片吗答案当然是肯定的在本次分享中,我们将利用的包和函数来实现图片的下载。 介绍   在博客:Scrapy爬虫(4)爬取豆瓣电影Top250图片中我们利用Python的爬虫框架Scrapy,将豆瓣电影Top250图片下载到自己电脑上。那么,在Java的爬虫的也可以下载图片吗?答...

    tianren124 评论0 收藏0
  • Java爬虫之爬取中国高校排名前100名并存入MongoDB中

    摘要:介绍在博客爬虫爬取中国高校排名前名并写入中,我们利用来写爬虫,将中的大学排名表格爬取出来,并存入到中。本次分享将用的来实现相同的功能,并将爬取到的数据存入到数据库中。 介绍   在博客:Python爬虫——爬取中国高校排名前100名并写入MySQL中,我们利用Python来写爬虫,将http://gaokao.xdf.cn/201702/1... 中的大学排名表格爬取出来,并存入到My...

    jzzlee 评论0 收藏0

发表评论

0条评论

songze

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<