py爬虫爬取学校通知公告
文章目录
- 写在前面
- 分析HTML
- 代码
- 后续的消息推送
写在前面
这个不困难,用到两个库。
- requests库,用来发起get请求获得目标HTML。
- bs4,用来解析HTML获取想要的信息。
两个库都是第三方的,所以需要对应下载。可以直接命令行使用pip
pip install requests
pip install bs4
如果用的pycharm,也可以直接点击左上角"File",“Settings”,然后找到左侧红框点击,点击右侧“+”。然后在弹出的窗口中输入要下载的库。
分析HTML
注:这一部分是一些“废话”!!看代码直接到最下面去
首先,在浏览器内打开控制台查看页面元素,找到你想要提取的内容。如下图,在无数次展开标签后,终于找到通知公告这个表单了。
下图是第二条消息的table:
分析一下:我的目的是得到消息标题以及对应链接,然后把标题和链接推送出去。做法有很多种:
- 直接找到上图中第三行的id"line_u3_1"就可以定位到这个tr标签,然后".td.a.get(“href”)“拿到链接,”.td.a.text"拿到标题
- 通过string=“2019-11-06"定位到截图中间部位的span标签,然后”.parent.parent.td.a.get(“href”)“拿到链接,”.parent.parent.td.a.text"拿到标题
- 等等
然而,这里面其实涉及到一个很简单的算法问题,可以想象一下:“通过脚本不断的定时访问,我要如何拿到一个网站的最新消息?”如果是一直拿取最上面一条,与前一次拿取的最上面一条比对,不等则是最新消息。但是如果网站置顶一条或多条消息,那么这一方法就失效了。所以,从根本上,这种方法是不可靠的,它不能保证爬取的消息是最新的。
而方法二可以实时获取当天的年月日,与网站内通告的日期比对,相等则一定是最新消息,爬到一条后就把它添加到一个“已抓取”列表中,再次抓取的时候先判断通知的链接是否在列表内,在则是当日已抓取信息;不在内则是当日新信息。
代码
给出一个较为简单的爬虫示例,最开始在网上查资料时,各种大堆代码看起来很烦。
直接能用的:功能是打印出学院2019-11-06的所用通知的标题和链接(链接还没做处理)
import requests
from bs4 import BeautifulSoupurl = 'http://www.auto.shu.edu.cn/synr/tzgg.htm'
# 模拟浏览器发送HTTP请求
header = {'User-Agent': 'Mozilla/5.0'}
try:response = requests.get(url, headers=header)response.raise_for_status()# 设置编码response.encoding = response.apparent_encodinghtml = response.textsoup = BeautifulSoup(html, "html.parser")target = soup.find_all("span", string="2019-11-06")# target为列表for eachOne in target:each_text = eachOne.parent.parent.td.a.texteach_href = eachOne.parent.parent.td.a.get("href")print(each_text)print(each_href)
except:print("爬取失败")
#######################输出结果如下
第五届中国智能仪器仪表设计大赛/参赛邀请函
../info/1123/7805.htm
更多的bs4的HTML解析方法当然还是得看官方文档,中文的,自己做些小脚本可以参照。
Beautiful Soup 4.4.0 文档
后续的消息推送
其实最初的目的就是每次去刷公告很烦,所以想爬取各种通知公告,然后推送到QQ上。结果webQQ停止维护了,所以就打算搞个微信机器人给自己推送通知公告。
博客地址:wepy微信机器人:向好友推送爬取的公告
py爬虫爬取学校通知公告相关推荐
- 爬虫爬取学校通知信息(python))
呦呦鹿鸣 一.爬虫简介 1.1 介绍 1.2 软件配置 二.爬取南阳理工学院ACM题目网站 三.爬取学校官网的信息通知 四.总结 五.参考 一.爬虫简介 1.1 介绍 网络爬虫英文名叫Web Craw ...
- 爬虫爬取学习通知信息
文章目录 一.爬虫简介 1 .介绍 2.爬虫工作过程 二.爬取南阳理工学院ACM题目网站 三.爬取学校官网的信息通知 四.总结 五.参考链接 一.爬虫简介 1 .介绍 (1)网络爬虫英文名叫Web C ...
- Python爬取网站用户手机号_用Python爬虫爬取学校网妹子QQ号,100行代码撩妹,用技术脱单...
前言: 其实这个项目没什么难度,稍微懂一点爬虫的人或者是已经就业的程序员都可以用自己学的编程语言写出来,但是正是这也原因,也间接证明现在网络很多安全问题的存在,简单的说就是这个网站的程序员偷懒,让用户 ...
- PY爬虫 | 爬取下厨房的本周最受欢迎
# CY3761 | 2021-10-27 20:03# 爬取下厨房的本周最受欢迎-列表数据 import base64 import os.path from urllib import reque ...
- python爬取上市公司套期保值公告(巨潮网)--使用Selenium方法
python爬虫爬取上市公司套期保值公告(巨潮网) 摘要 巨潮资讯网的网页是通过JavaScript动态加载的,因此本文利用Selenium方法爬取该网站上市公司的套期保值公告. 主要技术路线: 1. ...
- python爬虫实现实时爬取学校最新通知并推送
1.背景 由于考研复试需要实时获取报考学校的最新通知,以免错过重要的消息,而手动刷新的方式费时费力,因此想到通过爬虫实现实时获取最新通知的功能.但还需解决几个问题: 爬虫爬取的最新通告,采用什么方式推 ...
- python爬取学校新闻_python爬虫爬取新闻的简单实现
我们通常是使用爬虫爬取网站信息,其实网络爬虫是一种应用于搜索引擎的程序.使用python爬虫可以将一个网站的所有内容与链接进行阅读.例如我们每日都要获取新闻信息,利用python爬虫就可以帮助我们爬取 ...
- python爬去学校_python爬取学校教务系统
写这个爬虫的缘由 以前用java写过一个爬取学校的教务系统的爬虫 https://blog.csdn.net/ygdxt/article/details/81158321,最近痴迷Python爬虫,了 ...
- python爬取学校教务管理系统
写这个爬虫的缘由 以前用java写过一个爬取学校的教务系统的爬虫 https://blog.csdn.net/ygdxt/article/details/81158321,最近痴迷Python爬虫,了 ...
- python学校_python爬取学校教务系统
写这个爬虫的缘由 以前用java写过一个爬取学校的教务系统的爬虫 https://blog.csdn.net/ygdxt/article/details/81158321,最近痴迷Python爬虫,了 ...
最新文章
- 《创业维艰分享之五》所有得,有所乐,日事日清,循序渐进。
- 按照 排序 oracle,oracle 按照中文排序
- [Android] Android4.0、4.1在手机上制作fastboot线刷包;
- Integer类的toBinaryString源码分析
- 门槛回归模型_stata15:门槛模型
- 【云计算】Kubernetes、Marathon等框架需要解决什么样的问题?
- vue-cli 最强指南
- SH7218T拆解手记(7)Clockworkmod recovery的编译
- ognl.OgnlException: target is null for setProperty(null, offset, [Ljava.lang.String;@1667f3c) 解决方法
- 【高级渲染特性】抗锯齿技术介绍
- VBA 工作簿和工作表的简单操作
- FYI|OHBM BrainArt Competition DDL: June06/2021
- win10系统更新服务器出错怎么办,win10系统正式版自动更新出错的解决方法
- 路由器DNS被劫持 解决办法、dns 被劫持怎么解决
- mfw 攻防世界web题 (Git泄露)
- m3u8格式转MP4(ffmpeg方法)
- 9 Greenplum高级使用
- Android Studio实现有趣的星座配对APP
- Android 11.0 12.0蓝牙遥控器确认键弹不出输入法的解决方法
- 合租在北京,那些你不知道的事
热门文章
- 1038: 绝对值最大 Python
- C++单例模式(懒汉模式)实现
- MAX30102 高灵敏度脉搏氧器和心率传感器说明书
- teamviewer远程控制工具
- dell 7050台式计算机,Dell OptiPlex 7050 系统指南
- 计算机制造与设计,比钻石还要硬,科学家利用计算机:设计制造出“五角”超硬钻石...
- ansys中模态扩展是什么意思_ansys模态分析步骤
- 电信跨域跨系统业务实践
- arcgis地理数据库之创建sde用户
- 计算机技术转让增值税,技术转让收入是否交增值税