1.背景与目标
在出成绩之前,我们需要时刻关注报考学校的最新通知,以免错过重要信息。然而,手动刷新网页的方式既耗时又费力。为此,我们可以利用Python爬虫技术,实现学校最新通知的实时爬取与推送,确保信息获取的及时性与准确性。
2.推送方式选择
要实现通知的实时推送,我们需要选择一个合适的推送方式。经过对比,我发现虾推啥(https://www.xtuis.cn/)这一公众号推送方式非常适合我们的需求。通过关注公众号并获取个人token,我们可以轻松实现文字通知的实时推送,确保微信能够及时收到重要信息。
3.爬虫执行频率设置
为了避免对目标网站造成过大的访问压力,我们需要合理设置爬虫的执行频率。考虑到信息的时效性和访问的合理性,我建议将爬取速度设置为每小时一次。这样既能保证及时获取最新通知,又能避免对网站造成过大的负担。
4.爬虫部署位置选择
为了实现24小时不间断的自动爬取与推送功能,我们需要选择一个合适的部署位置。考虑到本地设备的限制和实时推送的需求,我建议将爬虫部署在云服务器上。阿里云服务器是一个不错的选择,经过学生认证和测试,我们可以免费使用两个月,轻松搭建起自己的爬虫环境。
5.实施步骤
5.1 注册并获取虾推啥token:首先,关注虾推啥公众号并注册账号,获取个人token,以便后续实现推送功能。
5.2 编写Python爬虫代码:使用Python编写爬虫代码,包括请求学校网站、解析网页内容、提取最新通知等步骤。确保爬虫能够准确获取所需信息。
(1)打开需要解析的网页,找到第一篇文章,右键单击“检查”选项。
(2)开始分析网页内容,可以看到p中有 class="newscontent" ,span中存放的是文章的日期,a中的href存放的是网页链接。
(3)编写爬虫代码:
(4)尝试在pycharm中运行代码,输出为以下内容。将网页中所有文章的网址、标题、日期全部输出出来了。
5.3 实现推送功能:在爬虫代码中集成推送功能,将获取到的最新通知通过公众号推送给用户。
(1)使用datetime模块获取当日信息,并将其格式化为带方括号的字符串形式,比较今日日期与网页上的日期是否一致,如果日期匹配则是成绩出了。无论日期是否匹配,代码都会发送一个默认的GET请求到另一个URL,通知用户成绩还未出。
5.4 部署爬虫到云服务器:将编写好的爬虫代码部署到阿里云服务器上,确保服务器能够24小时运行。
(1)打开阿里云服务器(https://www.aliyun.com/)
(2)学生可以领取免费的服务器使用,这里我以轻量服务器为例,查找轻量服务器
(3)选择轻量服务器
(4)设置服务器配置
(5)转到服务台查看服务器ip地址。
(6)使用远程连接工具连接
(7)登录到你的云服务器后,执行宝塔面板安装命令,阿里云服务器网使用的CentOS操作系统,命令如下:
执行宝塔Linux面板安装命令后,会提示如下:
保持默认,回复个字母“y”,如下图:
(8)安装好后会有提示IP地址、用户名、密码和端口号。在阿里云中开放端口号。
(9)输入外网面板地址,使用账号密码登录。网页提示安装LNMP,确认并安装好LNMP组件。
(10)安装所需要的BeautifulSoup库,并在命令行中编辑好Python代码
5.5 设置爬虫执行频率:在Linux中设置合理的执行频率,如每小时执行一次。
这样便完成了一个完整的自动抓取并推送学校最新通知的实践流程。