首先声明这个是最简单的网页爬虫,爬的是静态的HTML,那些需要用JS动态产生的动态网页难度更高,运行环境要求也比较苛刻,所以不在讨论范围。
代码如下,运行环境Python3.4。
https://github.com/Wujh1995/News-Crawler
上了大三大四之后,发现自己对学院网信息的依赖程度是越来越深了,无论是奖学金的评定通知,公示,还是各大公司的宣讲会信息,都在学院网上有贴出。及时的拿到第一手信息非常重要,但是又不可能每天去学院网看一遍。
于是乎实验室的学神同志就写了个python,爬取主要的信息网站,一旦有新的信息出来,他就会收到短信。
当然了,因为学神同时是土豪,拥有苹果全家桶,iMessage在Mac有API接口,有AppleID就可以很方便的发短信,而且免费。而我这种安卓狗就不行了,要发短信就需要去运营商那申请一个服务器,然后交一大笔钱,就像平时各种公司给你发的验证短信那样,穷人给不起钱,只能换成邮件。还好现在手机有邮件APP,收到新邮件有通知栏提醒,跟短信没什么区别。
另外澄清一下,这个代码的核心并不是我写的,我只学了python的一点点皮毛而已,只是在学神的代码上删删改改出来的,但是python这种代码可读性很强,属于代码就是注释的类型,你们下载之后就知道了。修改方法在github的readme上有写,最简单的就是改个收件人,如果需要比较大的改动,需要先看懂代码。
代码执行结构:
首先initialize,爬下网页的html文件;然后隔一定时间爬一次;跟前一次的html比较,如果有新的链接出现,就把标签内容发送出去。
里面爬虫的核心部分用到了BeautifulSoup的API,爬取过程非常方便,几句话就搞定了。
邮件发送用的是SMTP协议,用的是腾讯的SMTP服务器,有QQ邮箱就能用,免费,挺好,但好像说要使用QQ邮箱满一定时间才能用,几个月吧好像。
最后科普一个小知识,比方这个程序肯定是24小时运行的,但我不想python的小黑框在那碍眼,一不小心还容易关掉,希望把它扔到后台去。
那可以在命令行里运行`start pythonw crawl.py
这样在就可以在后台运行这个脚本了。打开任务管理器,应该能看见多了一个进程叫“pythonw”