首先我们看看爬虫的定义:
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。
也就是说,从网络上抓取数据的程序都可以称为是爬虫。一般来说,爬虫一般使用Python等脚本语言来编写,Java等高级语言不是说不能写,只是不适合,脚本语言本身语法简单,自带功能强大的库,编写爬虫这种小程序简单快捷。所以一般我们选用Python来写爬虫。
以上我们简单了解了爬虫的定义和使用的语言工具。接下来,我们开始用一个实际的例子来熟悉爬虫的实现。
华工的教务系统在选课的时候是最繁忙,也是经常崩溃的。原因就在于在一时间大量用户登录,服务器内存不足,无法处理这么多的请求。如果你厌倦了不停的点击刷新,提交的话,那么可以考虑用爬虫帮你自动选课。
既然有了这个念头,那么从哪里着手呢?直接写代码吗?肯定不是。要开发软件的时候直接上来就写代码的行为就是耍流氓。
第一步应该是分析选课的流程
- 登录教务系统
- 点击校公选课
- 查看所有的课程列表
- 选中要选的课程
- 提交
以上是选课的五个步骤。我们先来看看这五个步骤背后的技术实现。
在登录的时候,浏览器会发送一个post请求,附上账户密码,服务器验证通过之后,返回相应的页面。
这里有个地方要注意,就是我们如何保持登陆状态?一般来说,保持登陆状态,采取的方法无非是cookie和session。观察请求,我