Java程序中使用 Jsoup 爬虫( 简单示例 )
一、maven项目里pom添加jsoup依赖
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
以抓取CSDN主页的右侧导航栏为例
代码示例:
package com.oukele.csdn_demo; import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import java.io.IOException; public class CsdnCrawlDemo { public static void main(String[] args) {
//目标地址
String url = "https://www.csdn.net/";
try {
Document document = Jsoup
.connect(url)
.header("user-agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36")
.get();
// 右侧导航栏
Elements nav_com = document.getElementsByClass("nav_com");
Elements elements = nav_com.select("ul>li");
for (Element element : elements) {
System.out.println("导航标题:"+element.text()+"\t标题访问地址:"+element.select("a").attr("href")+"\r\n");
//这里 我们可以 根据 得到的访问链接 再进行 爬取.........
}
} catch (IOException e) {
System.out.println("出现错误:"+e.getMessage());
} } }
运行结果:
导航标题:推荐 标题对应的链接:/ 导航标题:最新文章 标题对应的链接:/nav/newarticles 导航标题:关注 标题对应的链接:/nav/watchers 导航标题:资讯 标题对应的链接:/nav/news 导航标题:人工智能 标题对应的链接:/nav/ai 导航标题:云计算/大数据 标题对应的链接:/nav/cloud 导航标题:区块链 标题对应的链接:https://blockchain.csdn.net 导航标题:数据库 标题对应的链接:/nav/db 导航标题:程序人生 标题对应的链接:/nav/career 导航标题:游戏开发 标题对应的链接:/nav/game 导航标题:研发管理 标题对应的链接:/nav/engineering 导航标题:前端 标题对应的链接:/nav/web 导航标题:移动开发 标题对应的链接:/nav/mobile 导航标题:物联网 标题对应的链接:/nav/iot 导航标题:运维 标题对应的链接:/nav/ops 导航标题:计算机基础 标题对应的链接:/nav/fund 导航标题:编程语言 标题对应的链接:/nav/lang 导航标题:架构 标题对应的链接:/nav/arch 导航标题:音视频开发 标题对应的链接:/nav/avi 导航标题:安全 标题对应的链接:/nav/sec 导航标题:其他 标题对应的链接:/nav/other
示例代码源码:https://github.com/oukele/Java-Crawl
Java程序中使用 Jsoup 爬虫( 简单示例 )的更多相关文章
- 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案
方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...
- 在java程序中访问windows有用户名和密码保护的共享目录
在java程序中访问windows有用户名和密码保护的共享目录 Posted on 2015-11-20 14:03 云自无心水自闲 阅读(3744) 评论(0) 编辑 收藏 --> Jav ...
- java程序中获取kerberos登陆hadoop
本文由作者周梁伟授权网易云社区发布. 一般我们在使用kbs登陆hadoop服务时都直接在shell中调用kinit命令来获取凭证,这种方式简单直接,只要获取一次凭证之后都可以在该会话过程中重复访问.但 ...
- Derby安装,创建数据库,在Java程序中使用Derby
1,下载并安装Derby: 下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本. 我用的是10.5.3.0. 解压缩到任意文件夹, ...
- Linux上从Java程序中调用C函数
原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Jav ...
- 如何在java程序中调用linux命令或者shell脚本
转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...
- Java程序中调用Python脚本的方法
在程序开发中,有时候需要Java程序中调用相关Python脚本,以下内容记录了先关步骤和可能出现问题的解决办法. 1.在Eclipse中新建Maven工程: 2.pom.xml文件中添加如下依赖包之后 ...
- java程序中默认浮点形值常量是什么类型的?如何区分不同类型的浮点型整数值常量?
java程序中默认浮点形值常量是什么类型的 默认的所有的浮点型数值都是double型
- java程序中默认整形值常量是什么类型的?如何区分不同类型的整型数值常量?
java程序中默认整形值常量是什么类型的?如何区分不同类型的整型数值常量? 整数值默认就是int类型,只有在数值常量后面加“L”或“l”才表明该常量是long型
随机推荐
- 【Python】【demo实验29】【练习实例】【使用turtle画五角星】
原题: 使用turtle画五角星: 我的代码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- from turtle impor ...
- 2017Nowcoder Girl初赛重现赛 D(二进制枚举
链接:https://ac.nowcoder.com/acm/contest/315/D来源:牛客网 题目描述 妞妞参加完Google Girl Hackathon之后,打车回到了牛家庄. 妞妞需要支 ...
- 2019年9月训练(壹)数位DP (HDU 2089)
开学之后完全没时间写博客.... HDU 2089 不要62(vjudge) 数位DP 思路: 题目给出区间[n,m] ,找出不含4或62的数的个数 用一个简单的差分:先求0~m+1的个数,再减去0~ ...
- H. The Nth Item(The 2019 Asia Nanchang First Round Online Programming Contest)
题意:https://nanti.jisuanke.com/t/41355 给出N1,计算公式:A=F(N)Ni=Ni-1 ^ (A*A),F为类斐波那契需要矩阵快速幂的递推式. 求第k个N. 思路: ...
- LeetCode 203——移除链表(JAVA)
删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4 ...
- Elastic Search中DSL Query的常见语法
Query DSL是一种通过request body提交搜索参数的请求方式.就是将请求头参数(?xxx=xxx)转换为请求体参数.语法格式:GET [/index_name/type_name]/_s ...
- py2和py3之间的不同
1.print函数 很琐碎,而 print 语法的变化可能是最广为人知的了,但是仍值得一提的是: Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打 ...
- Http 协议学习
借助[小坦克:HTTP 协议教程] 1.HTTP协议是什么 协议是计算机在通信过程中必须共同遵守的规则,我的理解是类似所有汽车在行驶过程中必须共同遵守的交通规则一样. http协议叫超文本协议,是一种 ...
- MySQL之高级增删改查一
一.select all/distinct 字段名/别名 from table where条件+[1]+[2]+[3]: where条件:>,<,≥,≤,like,between and( ...
- python线程间通信
#!/usr/bin/python # -*- coding:utf8 -*- from threading import Thread, Lock import random def test_th ...