明天介绍的我的项目核心内容有两个,一个是抓取内容,另一个是发消息告诉。上面咱们一一来解说。
1 爬取职位信息
确定爬取的思路
该我的项目里爬取的都是江苏省高校,并且不止一个。爬取数据的入口是江苏省的某待业平台(http://www.91job.org.cn/defau...)
该页面收录了江苏省各市 160 多所高校的待业网站。从这里点进去每个站点里的内容,跟各高校官网的待业信息站点的内容是一样的,以南京师范大学为例:
能够看到,除了url不同外,内容是一样的。这就带来了一个益处是,咱们想爬取多个高校的待业信息,不必去每个高校官网找内容,间接到这个网站找就能够了,并且url格局也是固定的 “高校英文.91job.org.cn”。\
这还不是最牛的,最牛的是每个高校的职位列表页的 HTML 代码标签是一样的,上面比照下南京师范大学和东南大学的职位列表:
能够看到,二者的 HTML 标签和属性取值都是一样的,这带来的另外一个益处是,咱们能够写一份代码来爬取多个高校的待业列表。
另外,我找了山东的两个高校网站,职位列表页的HTML跟下面也是统一的,但找了北京两个网站发现齐全不同。既然有很多高校能做到统一,阐明背地有人在推动这件事,不管是谁都为他们的行为点个赞。
其实,企业里也常常遇到这样的问题,常常一个部门或者多个部门之间的数据格式不统一,往往须要花大量工夫在数据买通上做很多事件,十分费时费力,并且很难保护。
爬取数据
有了 url 和 网页格局,咱们就很容易爬数据了,首先须要一个待爬的高校列表
咱们须要的就是第一列,用它来拼接高校就业网的 url。有了 url 咱们就能够发申请获取网页源码了
外围的爬虫代码就这点,很简略。
- 51行拼接各高校职位列表url
- 52行 get_url 函数里应用 requests.get 来获取网页源代码
- 53行用 BeatifulSoup 解析网页 HTML 代码
- 54行获取 HTML class=‘infoList’ 的内容,这个属性值在下面 HTML 源码截图里能够看到
- 56行遍历职位列表,从中获取职位链接
发送告诉
爬取职位后,就能够发送告诉了,该我的项目反对三种告诉形式:print打印控制台、windows 气泡告诉 和 微信告诉。
须要减少一个逻辑是判断是否要告诉,如果曾经告诉过了就无须再告诉。
59~61行用来判断是否须要告诉的逻辑,告诉过的内容会写入 url_list.txt 中,并且程序启动时会将文件内容读入 url_list 变量。
65~72行依据配置发送不同模式的告诉。print告诉没啥说的,咱们简略介绍微信好友和windows气泡告诉。
微信好友告诉
微信告诉次要用到 wxpy 模块,它在 itchat 的根底上,通过大量易用的接口。
首先须要初始化
106~107行初始化 Bot 对象,启动程序时会弹出一个二维码,须要扫码登录。
109~102行确定将数据发给谁,能够发给文件助手、本人、或者任意好友。
调用 send 函数,就能够把内容发给好友了,很简略。
wxpy 文档提醒大家尽量用小号,因为应用该模块可能会导致 web微信无奈登录。
发送windows气泡告诉
windows气泡告诉次要通过调用 windows 的零碎 API 来实现
第9行判断运行的程序的零碎是否是 Windows,如果是,15行初始化TestTaskbarIcon 对象 message,用来发消息。
TestTaskbarIcon 类在 windows 模块里,但我的项目源码里并没有定义 windows 模块,预计是作者遗记上传了。咱们百度一下 TestTaskbarIcon ,网上能找到 TestTaskbarIcon 的源码。在我的项目根目录创立 windows.py 文件,将 TestTaskbarIcon 源码复制进去即可。
TestTaskbarIcon 源码外面都是调用 windows 零碎 API ,没什么可说的,外围代码是 showMsg 函数
调用 showMsg 函数就能够实现气泡告诉。
再对之前发送职位的代码稍作批改就能够了
将 show_msg 改成 showMsg,再批改下传参就能够。运行成果:
这样,整个我的项目就介绍完了,还是比较简单的,一共也就 100 多行代码。
又到毕业季了,想体现的要趁机放松,我只能帮你们到这了。
以上就是本次分享的所有内容,如果你感觉文章还不错,欢送关注公众号:Python编程学习圈,每日干货分享,发送“J”还可支付大量学习材料。或是返回编程学习网,理解更多编程技术常识。