Java爬虫背景:工作当中多多少少需要从互联中获取一些信息,听得最多的爬虫语言是python,但为了爬一些信息,重新投入学习它,有点得不偿失。Java也可以是实现信息的爬去,这里主要介绍并总结JSOUP框架下的爬虫
解析html熟悉api
利用jsoup解析html文本,也算是一个hello word吧;
在pom中添加jsoup依赖,如下图:

Code 如下:

同样这个框架提供了很多的api,如下可以获取html对应某个标签的值;
Elements elements = document.getElementsByTag("p");for(Element element : elements){
String text = element.ownText();
System.out.println(text);
}
更多的api可以去官方网站上查询,https://jsoup.org/apidocs/;
实战
从网页上获取自己想要的内容,首先获取目标,我这边以简书上的一份博客为例:

按F12,找的你感兴趣的部分,需要一点HTML便签的基础,然后对应JSOUP的api开始编程;
代码如下:public class ReptileNetWork {// private static final String URL = "https://hzxkctk.cn/Guide/2019920/1568962042448_1.html";private static final String URL = "https://www.jianshu.com/p/01a4ed127a52";public static void main(String[] args) {try {trustEveryone();// 方式一:直接调用connect
Document documented = Jsoup.connect(URL).get();// 方式二:直接调用connect
// Document documented = Jsoup.connect(URL)
// .data("query", "Java")
// .userAgent("Mozilla")
// .cookie("auth", "token")
// .timeout(3000)
// .post();
String title = documented.title();
System.out.println("头"+title);
Elements elements = documented.getElementsByClass("_2rhmJa");for(Element element : elements){
Elements pe = element.getElementsByTag("p");
pe.stream().forEach(x->{
System.out.println(x.text());
});
}
String body = documented.body().ownText();
System.out.println(body);
}catch (IOException e) {
e.printStackTrace();
}
}
我这边是直接获取css的class为_2rhmJa下p标签中的内容;运行之后的效果:

问题
如果碰到https协议的url,需要加上ssl认证,在连接获取之前,调用下放代码:/**
*信任任何站点,实现https页面的正常访问*
*/public static void trustEveryone() {try {
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Overridepublic boolean
verify(String hostname, SSLSession session) {return true;
}
});
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, new X509TrustManager[] { new X509TrustManager() {
@Overridepublic void
checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Overridepublic void
checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Overridepublic
X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];
}
} },new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
}catch (Exception e) {// e.printStackTrace();
}
}
作者:liuwj的ing
链接:https://www.jianshu.com/p/9f00c1f69d9d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

jsoup 获取html中body内容_JSOUP获取资源相关推荐

  1. jsoup 获取html中body内容_jsoup实现java抓取网页内容

    jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据.jsoup ...

  2. python3文件下载-python3获取文件中url内容并下载代码实例

    这篇文章主要介绍了python3获取文件中url内容并下载代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #!/usr/bin/env py ...

  3. jQuery获取div中的内容

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  4. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取 Activity 中的所有方法 | 获取方法上的注解 | 获取注解上的注解 | 通过注解属性获取事件信息 )

    文章目录 前言 一.获取 Activity 中的所有方法 二.获取方法上的注解 三.获取注解上的注解 四.通过注解属性获取相关事件信息 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...

  5. jsoup 获取html中body内容_Java 进阶 利用Jsoup获取HTML页面的各分页中的标题信息...

    简单介绍一下Jsoup Jsoup是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于Xpath,jQuery的操 ...

  6. jsoup 获取html中body内容_python爬虫之下载盗墓笔记(bs4解析HTML)

    前言: 最近一个作业用到爬虫,我爬取的网站是拉勾网,返回的是json格式,我就用字典的形式获取数据了 这次顺便把bs4解析返回的HTML格式也熟悉一下 爬了一个简单的网站:http://www.sep ...

  7. php 实现类,php 获取页面中指定内容的实现类

    本文为大家下使用php如何获取页面中的指定内容,而且以封装成类,需要的朋友可以参考下本文 功能: 1.获取内容中的url,email,image. 2.替换内容中的url,email,image. u ...

  8. Qt获取QTextEdit中的内容

    1.主要用到了QTextEdit中的成员函数:toPlainText(): 2.在编辑框中写上内容,点击获取按钮,通过控制台输出获取到的内容. 3.全部源码在附件中,这里之贴出主要实现部分. Text ...

  9. 使用java代码获取yml及properties文件中的内容,获取值

    获取properties文件中的内容 最近做项目一些值需要放在配置文件中,一开始使用的是properties文件,我这里没有使用注解@Value获取. 获取: InputStream in = Mes ...

最新文章

  1. R方差分析(anova)以及Tukey检验
  2. 简单的FTP应用程序
  3. 《死亡笔记》等书遭禁 北京全市封杀“鬼故事”
  4. php 图片叠加,thinkPHP5 生成海报(图片叠加定位)
  5. Adobe Acrobat Pro 2017安装
  6. python 自相关_自相关与偏自相关的简单介绍
  7. 服务器系统怎么刻录光盘,怎么刻录Win7系统盘?Win7系统盘刻录教程
  8. Visual Studio 2019上安装AnkhSVN2019
  9. 如何编写干净的Java代码
  10. 安川机器人程序还原_安川机器人报错代码:上传操作和判断CF卡故障
  11. 3Dmax导出插件制作
  12. 服务器虚拟主机,非根目录jsp文件的引包报错
  13. python爬京东联盟_Python爬取京东商品数据
  14. IntelliJ IDEA 文件只读
  15. bzoj 1814 Fornula 1
  16. ECM 手机MIC电路简单设计描述
  17. SteamVR 2.x手部模型、控制器的替换(12)
  18. Photoshop实用技巧教程
  19. 球半足球推荐,欧冠杯决赛:利物浦 VS 皇家马德里
  20. 高中计算机教学工作计划,教学工作计划

热门文章

  1. Phoenix官方教程 (一) 构建和运行
  2. IOS开发中的几种设计模式
  3. 混合线路接入时,360、QQ管家等测速显示电信IP或任意线路的IP
  4. 复制mysql数据目录后无法启动的问题
  5. 2013阿里技术嘉年华:阿里数据同步前世今生
  6. Grafana+Prometheus系统监控MySQL
  7. salt远程执行python脚本_SaltStack与Python配合实现系统用户自动化管理
  8. java工程窗口程序_java工程开发之图形化界面之(第二课)
  9. php7 imagick扩展,php7安装imagick扩展
  10. C++函数的返回值是指针