爬虫小试牛刀(爬取学校通知公告)

这篇具有很好参考价值的文章主要介绍了爬虫小试牛刀(爬取学校通知公告)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    • 完成抓取并解析DGUT通知公告12页数据,并提交excel文件格式数据,数据需要包含日期标题,若能够实现将详情页主体内容与发布人信息数据也一并抓取更佳
    • 提交内容:Excel数据文件

爬虫开始

首先看到页面呈现规则的各个方框,这意味着它们之间的一定是一样的

此处该有图

我们点开后台可以看见属于通知活动的代码中很多这类

  • 标签
    <li>
       <a href="../info/1042/48792.htm" target="_blank" title="关于开展2018届毕业生中期发展评价的通知">
            <div class="box">
                <div class="time">
                <div class="ll">
                    <img src="../images/list_box_07_ico.png" alt="">2023.06.09
                </div>
                <div class="rr">
                    <img src="../images/list_box_24_ico.png" alt="">
                </div>
                </div>
                
                <h5 class="overfloat-dot-2">关于开展2018届毕业生中期发展评价的通知</h5>
            </div>
            </
    

    那么我们可以分别截取一下几个标签,分别是

    时间标签:<div class="ll">
    标题标签:<h5 class="overfloat-dot-2">
    

    前期工作准备结束了,让我们打开pycharm,引入本次的包

    import requests #经典请求包
    from bs4 import BeautifulSoup
    import pandas as pd #生成xlsx文档包
    

    为了我们的页面的中文正常输出,我们必须对获取的内容进行一个转码

     url = 'example.com' + str(page) + '.htm'
        r = requests.get(url)
        r.encoding = 'utf-8'
    

    我观察到页面的顺序并不是从1往后的,而是从第12页为1.html,第11页为2.html,以此类推,而第一页则是index/tzgg.htm。

    所以我的循环体设置循环12次,最后一次如果返回的是404的话,则访问的上面的网页

        if r.status_code == 404:
            url = 'example.com/index/tzgg.htm'
            r = requests.get(url)
            r.encoding = 'utf-8'
    

    根据开头的标签,接下来就可以直接获取该标签上面的内容

    title = article.find('h5', {'class': 'overfloat-dot-2'}).text.strip()
    date = article.find('div', {'class': 'll'}).text.strip()
    

    此时你会发现我没有解释这个article怎么来的,是因为我发现如果只是按照上面的方法直接获取

  • 标签的话,页面中其他的该标签也会算进来,到时候就分不开产生bug。

    所以为了区别开其他的同种标签,页面范围内比

  • 大的标签,可以排除掉其他同类型标签的影响
    articles = soup.find('section', {'class': 'n_container'})
    articles = articles.find_all('li')
    

    到这里,时间和标题我们就得到了。接下来我们需要到详情页去获取发布者名字

    同样,详情页的url也在

  • 标签中
    href = article.find('a', href=True)
    href = href['href']
    article_detail_url = 'example.com' + href
    

    然后通过再访问这个链接进去以同样的方式获取发布者名字,还得和上文一样,分开是不是第一页的子链接,如果是则需要更换第一页的url才能防止返回404状态。

    article_detail_url = 'example.com/index/tzgg/' + href
    
    # 获取详情页信息
    detail_r = requests.get(article_detail_url)
    if detail_r.status_code == 404:
        url = 'example.com'+href
        detail_r=requests.get(url)
        detail_r.encoding = 'utf-8'
        detail_soup = BeautifulSoup(detail_r.text, 'html.parser')
        author = detail_soup.find('h6').find_all('span')[2].text
    

    我们需要的信息就完全抓取下来了。本次任务就结束了,接下来的导出excel文件

    # 将数据存储成DataFrame,并导出为Excel文件
    df = pd.DataFrame(data_list, columns=['日期', '标题', '发布者'])
    df.to_excel('通知公告.xlsx', index=False)
    

    总结

    这次做完通知公告爬虫,感觉不是很难,因为网站没有对请求头进行限制,所以让我直接request就行了。

    不过这次让我对python在爬虫之类的作用更加感兴趣,希望下次能了解更多的这类知识,以后也能学会如何防爬虫的知识。文章来源地址https://www.toymoban.com/news/detail-490954.html

  • 到了这里,关于爬虫小试牛刀(爬取学校通知公告)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

    领支付宝红包 赞助服务器费用

    相关文章

    • verilator——牛刀小试

      安装verilator可见:https://blog.csdn.net/qq_40676869/article/details/132648522?spm=1001.2014.3001.5501 编写一个异或的电路模块如下: top.v 编写C++测试文件 tb_top.cpp 编译并运行 –cc 将.v文件翻译成c++ –exe 创建可执行文件 –build verilator自动进行make –trace 记录波形 波形如下: github链接:https:/

      2024年02月10日
      浏览(40)
    • 运维Shell脚本小试牛刀(一)

      运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客 Cenos7安装小火车程序动画 运维Shell脚本小试牛刀(五):until循环 运维Shell脚本小试牛刀

      2024年02月11日
      浏览(41)
    • 运维Shell脚本小试牛刀(二)

      运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解 [root@www shelldic]# cat checkpass.sh  #!/bin/bash - #================================================================================================================== # # #                          

      2024年02月10日
      浏览(36)
    • 快速上手kettle(二)小试牛刀

      目录 一 、前言 二 、两个小目标 三、 kettle核心概念介绍 3.1 转换 3.1.1 步骤(Step) 3.1.2 跳(Hop) 3.1.3 元素据 3.1.4 数据类型 3.1.5 并发执行 3.2 作业 四、实践操作 4.1 案例1 将csv文件转换成excel文件 4.1.1 在kettle中新建一个转换 4.1.2选择输入控件并设置 4.1.3 选择输出控件并设置 4.

      2024年02月06日
      浏览(43)
    • 【LED子系统】八、小试牛刀

      个人主页:董哥聊技术 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强公司! 创作理念:专注分享高质量嵌入式文章,让大家读有所得!

      2024年02月06日
      浏览(40)
    • 小试牛刀 -- Kali Linux安装在手机

           Kali Linux是基于Debian的Linux的发行版,里面有许多关于网络渗透的程序,是目前在网络安全领域经常使用的工具,因此为了便于学习,在此进行Kali Linux的安装,主要安装在华为P50上,操作系统是鸿蒙4.0。    2.1 Termux的安装及配置        (1)Termux的安装        在安装Te

      2024年01月23日
      浏览(44)
    • 手动开发-实现SpringMVC底层机制--小试牛刀

      在这里说的底层机制的实现主要是指:前端控制器、Controller、Service注入容器、对象自动装配、控制器方法获取参数、视图解析、返回json数据。 前端控制器就是核心控制器。在这里我们可以设计一个Servlet来充当核心控制器: LingDispatcherServlet.java .这个控制器的作用主要是接收

      2024年02月08日
      浏览(47)
    • Python OpenCV 牛刀小试(练习)

              OpenCV在读取图像时,默认的颜色空间是BGR(蓝绿红),而在大多数其他的图像处理库和图像格式中,使用的颜色空间是RGB(红绿蓝)。因此,当你需要使用OpenCV处理图像,然后将处理结果传递给其他库(如matplotlib、PIL等)进行进一步处理或显示时,你需要将颜色空间

      2024年02月21日
      浏览(38)
    • 牛刀小试---二分查找(C语言)

      二分查找,也叫折半查找,是一种在 有序数组 中查找特定元素的算法。它通过比较中间元素和目标值的大小,将查找范围缩小为一半,直到找到目标元素或者查找范围为空。  1. 确定搜索范围:首先,需要确定要在哪个区间内进行查找。这可以通过比较目标值与中间元素的

      2024年01月17日
      浏览(36)
    • 代码还原小试牛刀(一):魔改的MD5

      2023年了,MD5已经是最基础的签名算法了,但如果你还只是对输入做了简单的MD5,肯定会被同行们嘲笑。加点盐(salt)是一种基本的提升,但在这个就业形势严峻的时代,仅仅加盐肯定不够了。 今天我们就来讲一讲魔改的MD5,让这个算法高大上起来。 1、菜卷 最简单的魔改方

      2024年02月04日
      浏览(45)

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    博客赞助

    微信扫一扫打赏

    请作者喝杯咖啡吧~博客赞助

    支付宝扫一扫领取红包,优惠每天领

    二维码1

    领取红包

    二维码2

    领红包