Java爬虫框架Jsoup学习记录
Jsoup的作用
当你想获得某网页的内容,可以使用此框架做个爬虫程序,爬某图片网站的图片(先获得图片地址,之后再借助其他工具下载图片)或者是小说网站的小说内容
我使用Jsoup写出的一款小说下载器,小说下载器
Jsoup导入
Jsoup官网
1. 使用gradle导入
compile 'org.jsoup:jsoup:1.11.1'
2. 第三方包导入
Jsoup使用
Jsoup中文文档
1. 获得Document
本地html文件或者使用javaIO流,则使用静态方法
parse
方法Document document = Jsoup.parse("D:\\test.html");
网址的话使用静态方法
connect().get()
Document document = Jsoup.connect("https://www.baidu.com").get();
2. 根据id找到某标签 document.getElementById
因为id
是唯一的,所以找到唯一的一个Element
Element element = document.getElementById("id名");
3. 根据class找到某标签 document.getElementsByClass
class可能不止一个,所以这里返回的是一个Elemnts
数组
Elements elements = document.getElementsByClass("d_title").select("h1");
4. 获得标签的内容 element.text()
例如html文件中有段代码为
<a id="title">hello world</a>
获得a标签的内容的代码为
Element element = document.getElementById("title");
String s = element.text();
5. 获得标签的属性 element.attr()
有段代码如下:
<a id="main" href="www.baidu.com"></a>
获得a标签的链接地址
Element element = document.getElementById("main");
String url = element.attr
String s = element.text();
6. 选择固定标签(li,p,a等)element.select("a")
返回的是Elements
数组
例如html文件中有段代码为
<div id="main"><a>hello world!</a></div>
获得a标签的内容代码为
Element element = document.getElementById("main");
Elements elements = element.select("a");
for(int i=0;i<elements.size();i++){String s = elements.get(i).text();
}
获取p标签不能换行
有段代码
<div id="main"><p>hello world</p><p>this is my name</p>
</div>
我们由id找到了element,我们想要获得p标签的内容,怎么办呢?
刚开始我想的也是使用select方法来选择p标签,但是,没有其作用
正确的方法应该是使用element.text方法获得内容,但是获得的内容全是一行的(段落之间是用空格隔开的)
我们想要每个p标签的内容独占一行,怎么办呢?
我们直接把空格替换成\n
即可
String string = element.text().replaceAll(" ","\n");
另外一种方法,如果感觉上面的方法不好用的话(有些小说原本就有些多余的空格),那么就使用下面的方法
Element element = document.getElementById("main");
String text = Jsoup.clean(element.html(), "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));//保存p标签换行
上面的获得的内容还有 
标志(html的空格标志),我们还得删除这个标志以及多余的空行
/*** 处理空行和“ ”标志* @param input 内容* @return 处理过后的结果*/public static String deleteCRLFOnce(String input) {return input.replaceAll("((\r\n)|\n)[\\s\t ]*(\\1)+", "$1").replaceAll(" ", "");}
转载于:https://www.cnblogs.com/kexing/p/10373375.html
Java爬虫框架Jsoup学习记录相关推荐
- java爬虫框架jsoup
1.java爬虫框架的api jsoup:https://www.open-open.com/jsoup/ 转载于:https://www.cnblogs.com/wuzaipei/p/1057266 ...
- Java爬虫框架之WebMagic的学习总结
Java爬虫框架之WebMagic WebMagic 概述 特性 架构 四大组件 数据流转对象 控制爬虫运转的引擎Spider WebMagic的基本使用 添加WebMagic的核心与扩展依赖 爬虫实 ...
- java爬虫框架—WebMagic
什么是网络爬虫 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满 ...
- SSM框架入门学习记录
SSM框架入门学习记录 //项目结构 在这里插入图片描述 在这里插入图片描述 包名多种多样,命名习惯问题. 流程:Controller(接受请求)-->Service(biz)(bl)(写业务函 ...
- scrapy框架菜鸟学习记录
scrapy框架菜鸟学习记录 scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.其可以应用在数据挖掘,信息处理或储存历史数据等一系列的程序中.其最初是为了页面抓取(更确切的说,网络抓 ...
- java爬虫框架之webMagic
webMagic框架 前言 介绍 案例 控制类: 解析类: 持久化类: 用到的工具类以及配置类: 注意事项 后语 前言 文章仅供安全领域的朋友学习使用!! 严禁做违法违纪的事情,责任自负 介绍 Web ...
- Java爬虫框架wemgic_Java爬虫框架-WebMagic挖坑补坑指南
以前总是用的Python下的Scrapy和crawley和PHP的小众爬虫框架,最近突然想到了何不用下Java下的框架试试? 查了下Java下的爬虫框架自然也不在少数,Nutch,WebMagic,W ...
- Java爬虫之JSoup使用教程
title: Java爬虫之JSoup使用教程 date: 2018-12-24 8:00:00 +0800 update: 2018-12-24 8:00:00 +0800 author: me c ...
- java爬虫框架哪个好_java爬虫框架的使用
原标题:java爬虫框架的使用 随着互联网的发展,编程程序语言也开始被越来越多的人所掌握,但是自始至终,java语言一直是被使用范围最广的编程语言.今天,武汉中软国际主要给大家讲解的是java语言中的 ...
- 什么是爬虫,常见的java爬虫框架有哪些?-蛙课网
随着互联网的发展,编程程序语言也开始被越来越多的人所掌握,与此同时,java语言是使用范围最广的编程语言.今天我们一起了解一下什么是爬虫,java爬虫框架有哪些. 网络爬虫(又称为网页蜘蛛,网络机器人 ...
最新文章
- 学python工资高吗-现在Python就业薪资高吗?
- 完全图解RNN、RNN变体、Seq2Seq、Attention机制
- c++ fork 进程时 共享内存_因为没答好进程间通信,面试挂了...
- 数组对象根据某个属性取出重复的个数
- Java笔记-Spring Boot Webservice中对指定namespace及localpart进行拦截
- Docker上部署MySQLCluster(基于mysql/mysql-cluster镜像)
- 无法远程连接Oracle
- excel2016 android,新编Excel 2016应用大全(实战精华版)
- 2020高压电工模拟考试及高压电工模拟考试系统
- 红外遥控接收发射原理及ESP8266实现
- 猫眼api html,爬取猫眼电影数据(示例代码)
- 计算机load代表,什么是 Load ? 什么是 Load Average ?
- 半吊子 opencv学习笔记
- 【设计大赛】基于RT-Thread和RA6M4实现samba服务的移动网盘
- ad574 的c语言编程,AD574A参考程序
- Elasticsearch:Supervised Machine Learning - 有监督的机器学习
- 双屏计算机主机是什么,双屏显示器怎么连接(台式机连接步骤教程) - 双屏显示器怎么设置_双屏显示器怎么连接_双屏显示器有什么用(电脑)...
- 佛山科学技术学院计算机期末试题,高等数学 A佛山科学技术学院期终考试试题.doc...
- ipmitool 实时检测温度的脚本编写
- android 获取usb serialnumber,iOS9获取手机序列号serialNumber(UDID)