介绍

接上一篇博客,本篇主要讲如何利用上一篇的HttpUtil工具类实现爬取校内新闻

上篇地址:

https://blog.csdn.net/m0_64261982/article/details/129409149?spm=1001.2014.3001.5502

实现思路

  1. 利用HttpCllient(也就是上一篇写好的HttpUtil工具类)实现网页的下载

  1. 利用Jsoup实现解析HTML内容

  1. 利用Jsoup内的css选择器方法搜索新闻对应的标签、属性

注意:

  • 一定要先在浏览器观察网页的页面源代码,因为每个网页的写法不一样,有的个人网站就不规整;

  • 还有就是观察我们所要提取的网页的特点

观察源码

0. 在网站主页加上robots.txt查看是否有robots协议

发现没有robots协议,那就随便爬了

  1. 上官网看源码

通过观察源码,我们可以发现,这次要爬取的内容比较简单,我们要的东西都在标签<li ></li>里面,网页还算规整

  1. 怎么爬取下一页

‘下一页’无非就是一个超链接,我们只需要观察超链接的内容,我们发现,这个新闻页的构成是这样的

  1. 统一的前缀:https://news.sxau.edu.cn/xxyw/

  1. 一共有329页,第二页对应资源 328.htm、第三页 327.htm

  1. 那就定义一个变量就好了,初始值begin为 328,每爬完一页,begin--

至此,就可以爬了

代码

public class JsoupDemo01 {private static String url;private static String html;private static Document doc;public static void main(String[] args) throws IOException {url = "https://news.sxau.edu.cn/xxyw.htm";html =  HttpUtil.getContent(url,"UTF-8");doc = Jsoup.parse(html);//使用css选择器输出农大10天内的新闻StringBuffer buffer = new StringBuffer();int count = 1;int begin = 329;for (int i = 1; i < 10; i++) {//这里只爬取9页System.out.println("========这是第 "+count+" /9页============");cssSelector(doc,"li",buffer);html = HttpUtil.getContent("https://news.sxau.edu.cn/xxyw/"+begin+".htm","UTF-8");doc = Jsoup.parse(html);begin--;count++;}System.out.println(buffer.toString());}/*** css选择器* @param doc Document对象* @param cssQuery 查询的格式* @param buffer 搜索结构返回到StringBUffer对象中去*/public static void cssSelector(Document doc,String cssQuery,StringBuffer buffer){Elements elements = doc.select(cssQuery);for (Element element : elements){   //遍历每个标签,并输出标签内容 <a>内容</a>String title = element.text();buffer.append(title);if (title.matches(".*次")){buffer.append("\n");}}}
}

运行效果

================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 1 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 2 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 3 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 4 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 5 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 6 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 7 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 8 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
========这是第 9 /9页============
================ HttpClient 开始下载网页 ===================
请求成功! 状态码 = 200
================= HttpClient 处理完毕,即将交由Jsoup处理 ====================
学校主页学校主页本网首页学校要闻综合新闻学术活动学术成果媒体关注农大人物校史钩沉校内通知农大公告农大校报视频农大丁 香 苑专题宣传阅读推荐学校妇女联合会成立暨第一次妇女代表大会胜利召开 2023-03-09 次
我校无人机创新创业团队在第八届中国国际“互联网+”大学生创新创业大赛... 2023-03-09 次
我校与上党区签约共建乡村振兴示范村 2023-03-09 次
学校召开全国大学英语四六级考试协调部署会 2023-03-09 次
学校举行学习贯彻党的二十大精神宣讲报告会 2023-03-08 次
我校青年掀起“学雷锋”志愿服务热潮 2023-03-06 次
学校举办学雷锋志愿服务分享会 2023-03-06 次
我校干部师生热切关注全国“两会” 2023-03-06 次
学校召开安全稳定工作部署会 2023-03-04 次
校第七届教职工代表大会第三次会议召开 2023-03-04 次
我校13项科研成果荣获2022年度山西省科学技术奖 2023-03-04 次
我校150名处级干部接受党风廉政警示教育 2023-03-03 次
校党委启动第六轮校内巡察工作 2023-03-03 次
学校召开马克思主义学院建设推进会 2023-03-02 次
学校召开2023年全面从严治党工作会议 2023-03-02 次
我校2个基地入选首批省级大中小学生劳动教育实践基地 2023-03-02 次
校党委书记廖允成赴我校南繁育种基地等地调研 2023-03-01 次
学校召开2023年研究生教育工作部署会 2023-03-01 次
校党委开展第五轮巡察反馈 2023-02-27 次
我校4案例入选2022年度全省教育系统党建创新案例 2023-02-26 次
292022.11学校开设专栏“同心齐抗疫”展示各单位抗疫事迹272022.08学校开设专栏“农业科技这十年”展示近十年农业科...182022.04学校开辟专栏系列宣传我校众志成城抗击疫情事迹062022.04山西农业大学2022年博士招聘公告242021.11【合署改革二周年】“改革蹚新路 奋进新征程”征文...1山西农业大学2022年博士招聘公告 2022-04-06次
2学校开设专栏“农业科技这十年”展示近十年农业科... 2022-08-27次
3学校开设专栏“同心齐抗疫”展示各单位抗疫事迹 2022-11-29次
4【合署改革二周年】“改革蹚新路 奋进新征程”征文... 2021-11-24次
5学校开辟专栏系列宣传我校众志成城抗击疫情事迹 2022-04-18次
学校主页学校主页本网首页学校要闻综合新闻学术活动学术成果媒体关注农大人物校史钩沉校内通知农大公告农大校报视频农大丁 香 苑专题宣传阅读推荐我校25项标准入选山西省2023年农业农村领域主推标准 2023-02-23 次
我校33个品种入选山西省2023年主要粮油作物和畜禽水产主推品种 2023-02-23 次
古县政府一行来校考察调研 2023-02-23 次
学校召开2023年度国家自然(社会)科学基金项目申报推进会 2023-02-23 次
省领导吴存荣、吴俊清关注山西·太谷第二十届科技节暨全国农业科技现代化... 2023-02-22 次
河南理工大学副书记石培哲来我校调研 2023-02-21 次
开学首日我校整体教学秩序良好 2023-02-20 次
我校组织晋中片区大中小学思政课一体化建设特色教学示范研讨活动 2023-02-18 次
校领导实地检查开学准备工作 2023-02-17 次
学校举办特优作物功能基因组学未来论坛 2023-02-17 次
省级双创示范基地专家组来校调研评估 2023-02-16 次
学校召开春季学期学生工作专题会 2023-02-16 次

...这里省略几百条

Process finished with exit code 0

写在最后

如果要更新爬取的内容,可以使用Set集合来保存,这样会自动过滤掉重复的内容。

有哪里错了的,或者有更好的建议,可以私信或者留言,谢谢大家!

【Java爬虫】HttpClient+Jsoup实现爬取校内新闻相关推荐

  1. java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一)

    转载自 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一) 最近在找java的小项目自己写着玩,但是找不到合适的,于是写开始学一点爬虫,自己也是感觉爬虫比较有趣.这里自己找了一个 ...

  2. scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...

  3. 19. python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求 [前期准备] 2.分析及代码实现 (1)获取五大板块详情页url (2)解析每个板块 (3)解析每个模块里的标题中详情页信息 1.需 ...

  4. python爬网易新闻_Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧

    Python爬虫实战教程:爬取网易新闻:爬虫精选 高手技巧 发布时间:2020-02-21 17:42:43 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有, ...

  5. 【python 爬虫】 scrapy 入门--爬取百度新闻排行榜

    scrapy 入门–爬取百度新闻排行榜 环境要求:python2/3(anaconda)scrapy库 开发环境:sublime text + windows cmd 下载scrapy(需要pytho ...

  6. python爬网易新闻_Python爬虫实战教程:爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Amauri PS:如有需要Python学习资料的小伙伴可以加点击 ...

  7. JAVA爬虫-上海公交线路爬取

    最开始的数据获取也有两个思路  虽然我的数据不是这么来的 一 .http://www.zuobus.com/line-overview.php?c=2 这个网站有所有的上海的公交线路 二.百度poi ...

  8. Java 爬虫简单实现多线程爬取视频

    一 引言 什么是网络爬虫? 个人简单理解: 根据特定规则从指定web开放内容中抓取希望获取的数据,如视频,图片,小说等 官方权威解释(wiki): 网络爬虫(英语:),也叫网络蜘蛛(),是一种用来自动 ...

  9. java爬虫自动识别验证码_简单Java爬虫(一)爬取手机号码

    原创 野狗菌 希望你能喜欢 今天 关于本文: 本文介绍一个简单Java爬虫,获取网页源码,爬取电话号码. 本篇教程用我的博客一个测试网页演示. --野狗菌[希望你能喜欢] 测试页面: https:// ...

最新文章

  1. 干掉 RESTful!GraphQL 真香!
  2. React 项目----内联样式style的使用 (12)
  3. 从(0,0)到(n,n)——广度优先及其改进
  4. ElementUI 添加修改提示成功后 如何刷新表格数据展示
  5. 360董事长周鸿祎跨足手机市场是福还是祸?
  6. 张景中:把数学变容易大有可为
  7. c语言传递多个参数给线程,关于ssl多线程参数的传递
  8. java 避免大量if else_利用java的反射避免 多个 if else if else if else if
  9. BTC 5分钟内涨幅1.08%,现价23903.52usdt
  10. 5G:无人驾驶的“超级英雄”路
  11. ORACLE纯SQL实现多行合并一行【转】
  12. 陈纪修老师《数学分析》 第06章:不定积分 笔记
  13. 更改 matlab java 版本_64位 JDK 1.8 调用Matlab 2017b打包的jar
  14. Python数据挖掘:利用聚类算法进行航空公司客户价值分析
  15. ios禁止屏幕旋转的几种方法
  16. pandas.dataframe中根据条件获取元素所在的位置(索引)
  17. android 老人机模式,如何将智能手机切换成老人机模式
  18. 图解:什么是二叉堆?
  19. 浙江八年级 python_今年9月起,浙江八年级新增Python编程课程
  20. windows编程如何更改窗口图标和光标

热门文章

  1. 数据库的一些操作(Sql)
  2. 3D图形学(10):游戏中的加速渲染算法
  3. 解决springboot maven多模块项目打包的时候某个被依赖的模块报错找不到main class
  4. 为植物病害对象检测引入改进的 PlantDoc 数据集
  5. android 联机下100层小游戏开发心得
  6. 本地DNS服务器的配置
  7. Abp vNext 地磅无人值守项目目录
  8. 基于Qt的OpenGL可编程管线学习(14)- 正片叠底、逆正片叠底
  9. 关于java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup问题的解决方法
  10. Linux系统Ubuntu 20.04 ,cuda=11.1。实现C3D代码环境。