网络爬虫技术Jsoup
Jsoup介绍:
Jsoup 是一个 Java 的开源HTML解析器,可直接解析某个URL地址、HTML文本内容
Jsoup主要有以下功能:
1. 从一个URL,文件或字符串中解析HTML
2. 使用DOM或CSS选择器来查找、取出数据
3. 对HTML元素、属性、文本进行操作
4. 清除不受信任的HTML (来防止XSS攻击)
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.9.2</version>
</dependency>
public class JsoupDemo {
private static OutputStream os;
public static void main(String[] args) {
try {
Document doc = Jsoup.connect("https://www.csdn.net/").get();
// System.out.println(doc.title()); //CSDN-专业IT技术社区
//把文章标题和连接写入txt文件
Element feedlist_id = doc.getElementById("feedlist_id");
Elements h2 = feedlist_id.select("h2.csdn-tracking-statistics");
Elements a = h2.select("a");
//指定文件名及路径
File file = new File("E:\\jsoup\\word\\test.txt");
if (!file.exists()) {
file.createNewFile();
}
//写入本地
PrintWriter pw = new PrintWriter("E:\\jsoup\\word\\test.txt","UTF-8");
for (Element element : a) {
pw.println(element.text());
pw.println(element.attr("href"));
pw.println("------------------------------------------------------------------------------------------------------------------------------------");
}
pw.close(); //关闭输出流
//获取页面上的图片保存到本地
Elements imgs = doc.select("img[src$=.png]");
for (Element element : imgs) {
String img = element.attr("src");
String url = "http:"+img;
System.out.println(url);
System.out.println(url.indexOf("csdn"));
if (url.indexOf("csdn")==-1) {
continue;
}
URL u = new URL(url);
URLConnection uc=u.openConnection();
//获取数据流
InputStream is=uc.getInputStream();
//获取后缀名
String imageName = img.substring(img.lastIndexOf("/") + 1,img.length());
//写入本地
os = new FileOutputStream(new File("E:\\jsoup\\img", imageName));
byte[] b = new byte[1024];
int i=0;
while((i=is.read(b))!=-1){
os.write(b, 0, i);
}
is.close();
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
网络爬虫技术Jsoup的更多相关文章
- 网络爬虫技术Jsoup——爬到一切你想要的(转)
转自:http://blog.csdn.net/ccg_201216323/article/details/53576654 本文由我的微信公众号(bruce常)原创首发, 并同步发表到csdn博客, ...
- 网络爬虫技术实现java依赖库整理输出
网络爬虫技术实现java依赖库整理输出 目录 1 简介... 2 1.1 背景介绍... 2 1.2 现有方法优缺点对比... 2 2 实现方法... 2 ...
- 企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件
前天小编带大家利用Python网络爬虫采集了天气网的实时信息,今天小编带大家更进一步,将采集到的天气信息直接发送到邮箱,带大家一起嗨~~拓展来说,这个功能放在企业级角度来看,只要我们拥有客户的邮箱,之 ...
- Java网络爬虫技术《二》Jsoup
Jsoup 当我们成功抓取到页面数据了之后,还需要对抓取的数据进行解析,而刚好,Jsoup 是一款专门解析 html 页面的技术.Jsoup是一款基于 Java 的HTML 解析器,可直接解析某个 U ...
- 网络爬虫之JSOUP
JSOUP中文文档:http://www.open-open.com/jsoup/推荐博客:http://www.cnblogs.com/jycboy/p/jsoupdoc.html 从一个URL加载 ...
- Java网络爬虫技术《一》 HttpClient
HttpClient HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP ...
- python网络爬虫技术图谱
- [Search Engine] 搜索引擎技术之网络爬虫
随着互联网的大力发展,互联网称为信息的主要载体,而如何在互联网中搜集信息是互联网领域面临的一大挑战.网络爬虫技术是什么?其实网络爬虫技术就是指的网络数据的抓取,因为在网络中抓取数据是具有关联性的抓取, ...
- 网络爬虫系统Heritrix的结构分析 (个人读书报告)
摘要 随着网络时代的日新月异,人们对搜索引擎,网页的内容,大数据处理等问题有了更多的要求.如何从海量的互联网信息中选取最符合要求的信息成为了新的热点.在这种情况下,网络爬虫框架heritrix出现 ...
随机推荐
- Dubbo的底层实现原理和机制
–高性能和透明化的RPC远程服务调用方案 –SOA服务治理方案 Dubbo缺省协议采用单一长连接和NIO异步通讯, 适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况
- vue better-scroll 下拉上拉,加载刷新
_initScroll(){ this.$nextTick(() => { if (!this.scroll) { ...
- Emacs基本操作说明
- 关于maven工程将model删除重建之后变为灰色的问题的解决
问题描述: IDEA中的maven工程中有时候将model或者子model建错,删除之后,子模块在maven在侧栏的maven projects中是灰色的,而且是并没有依赖父工程 在网上搜了搜解决办法 ...
- jquery学习笔记(三):事件和应用
内容来自[汇智网]jquery学习课程 3.1 页面加载事件 在jQuery中页面加载事件是ready().ready()事件类似于就JavaScript中的onLoad()事件,但前者只要页面的DO ...
- POJ 2187 /// 凸包入门 旋转卡壳
题目大意: 求最远点对距离 求凸包上的最远点对 挑战263页 #include <cstdio> #include <string.h> #include <algori ...
- Spring JdbcTemplate详解(9)
JdbcTemplate简介 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中. JdbcTempla ...
- Shutdown- Linux必学的60个命令
1.作用 shutdown命令的作用是关闭计算机,它的使用权限是超级用户. 2.格式 shutdown [-h][-i][-k][-m][-t] 3.重要参数 -t:在改变到其它运行级别之前,告诉in ...
- Python全栈开发:生成随机数
#!/usr/bin/env python # -*- coding;utf-8 -*- import random def foo(args): """ :param ...
- css3 ---2 属性的选择器
存在和值属性选择器1:[attr]:该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何. [name]{ background: pink; } <!DOCTYPE html& ...