在数据量爆发式增长的互联网时代,爬虫程序爬取的数据往往很多,而且相关的数据往往分布在很多不同的网页中,甚至分布在相关联的很多不同的网站中,爬虫程序必须能按链接自动往返于这些不同的网站中去爬取数据,一个爬虫程序爬取成百万上千万条的数据是常有的事,怎么样设计一个高效率的爬虫程序成了我们学习的重点
1.1.1什么是网络爬虫
如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据。
通俗理解:爬虫是一个模拟人类请求网站行为的程序。可以自动请求网页、并把数据抓取下来,然后使用一定的规则提取有价值的数据。
比如百度搜索引擎的爬虫叫作百度蜘蛛(Baiduspider)。百度蜘蛛每天会在海量的互联网信息中爬取,爬取优质信息并搜寻,当用户在百度搜索引擎上检索对应关键词时,百度将对关键词进行分析处理,从收录的网页中找出相关网页,按照一定的排名规则进行排序并将结果展现给用户。
1.1.2网络爬虫是否合法呢?
网络爬虫领域目前还属于早期的拓荒阶段,虽然互联网世界已经通过自身的协议建立起一定的道德规范(Robots协议),但法律部分还在建立和完善中。从目前情况来看,如果抓取的数据属于个人使用或科研范畴,基本不存在问题;而如果数据属于商业盈利范畴,就要就事论事,有可能属于违法行为,也有可能不违法。但是违法事咱不做
除了上面Robots协议之外,我们使用网络爬虫的时候还要对自己进行约束:过于快速或者频密的网络爬虫都会对服务器产生巨大的压力,网站可能封锁你的IP,甚至采取进一步的法律行动。因此,需要约束自己的网络爬虫行为,将请求的速度限定在一个合理的范围之内
1.1.3python爬虫的基本流程
(1)浏览器通过DNS服务器查找域名对应的IP地址。
(2)向IP地址对应的Web服务器发送请求。
(3)Web服务器响应请求,发回HTML页面。
(4)浏览器解析HTML内容,并显示出来。
1.1.3HTTP协议
HTTP协议采取的是请求响应模型,HTTP协议永远都是客户端发起请求,服务器回送响应。
HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求没有对应关系。一次HTTP操作成为一个事物,其执行过程可分为四步
1、首先客户端与服务器建立连接,例如单击某个超链接。
2、建立连接后,客户端发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息,包括请求修饰符、客户机信息和可能的内容。
3、服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息,包括服务器信息、实体信息和可能的内容。
4、客户端接收服务器所返回的信息,通过浏览器将信息显示在用户的显示屏上,然后客户端与服务器端口断开连接。
好了这期就先讲到这里,下期给你们开始讲python爬虫第一个简单的案例