【Java爬虫】HttpClient+Jsoup实现爬取校内新闻

介绍

接上一篇博客,本篇主要讲如何利用上一篇的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集合来保存,这样会自动过滤掉重复的内容。

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让线程再跑一会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值