爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。
为什么我们要使用爬虫
互联网大数据时代,给予我们的是生活的便利以及海量数据爆炸式的出现在网络中。
过去,我们通过书籍、报纸、电视、广播或许信息,这些信息数量有限,且是经过一定的筛选,信息相对而言比较有效,但是缺点则是信息面太过于狭窄了。不对称的信息传导,以致于我们视野受限,无法了解到更多的信息和知识。
互联网大数据时代,我们突然间,信息获取自由了,我们得到了海量的信息,但是大多数都是无效的垃圾信息。
例如新浪微博,一天产生数亿条的状态更新,而在百度搜索引擎中,随意搜一条——减肥100,000,000条信息。
在如此海量的信息碎片中,我们如何获取对自己有用的信息呢?
答案是筛选!
通过某项技术将相关的内容收集起来,在分析删选才能得到我们真正需要的信息。
这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等……都能够借助这个技术获取更精准有效的信息加以利用。
网络爬虫技术,虽说有个诡异的名字,让能第一反应是那种软软的蠕动的生物,但它却是一个可以在虚拟世界里,无往不前的利器。
问题概述
python语言发展中有一个里程碑式的应用事件,即美国谷歌公司在搜索引擎后端采用python语言进行链接处理和开发,这是该语言发展成熟 的重要标志。python语言的简洁性和脚本特点非常适合链接和网页处理,因此,在python的计算生态中,与URL 和网页处理相关的第三方库很多。
万维网(WWW)的快速发展带来了大量获取和提交网络信息的需求,这产生了“网络爬虫”等一系列应用。python语言提供了许多类似的函数库,包括urllib,urllib2,urillb3,wget,scrapy,requests等。这些库作用不同,使用方式不同,用户体验不同。对于爬取回来的网页内容,可以通过re(正则表达式),beautifulsoup4等函数库来处理。
除了网络爬虫,自动向网站提交数据既有趣又有用,这样的功能也能通过requests库实现。
网络爬虫一般分为两个步骤:1.通过网络链接获取网页内容;2.对获得的网页内容进行处理。这两个步骤分别使用不同的函数库:requests和beautiful soup4.
采用pip指令安装requests库,如果在python2和python3 并存的系统中,采用pip3指令,代码如下;
:/>pip install requests #或者 pip3 install requests
采用pip或pip3指令安装beautifulsoup4库,注意,不要安装beautiful soup库,后者由于年久失修,已经不再维护了。安装命令如下:
:/>pip install beautifulsoup4 #或者pip3 install beautifulsoup4
使用python语言实现网络爬虫和信息提交是非常简单的事情,代码行数很少,也无须掌握网络通信等方面的知识,非常适合非专业读者使用。然而,肆意地爬取网络数据并不是文明现象,通过程序自动提交内容争取竞争性资源也不公平。就像那些肆意的推销电话一样,他们无视接听者志愿,不仅令人讨厌也有可能引发法律纠纷。
拓展:Robots排除协议
Robots排除协议(Robots Exclusion Protocol),也被称为爬虫协议,它是网站管理者表达是否希望爬虫自动获取网络信息意愿的方法。管理者可以在网站根目录放置一个robots.txt文件,并在文件中列出哪些链接不允许爬虫爬取。一般搜索引擎的爬虫会首先捕获这个文件,并根据文件要求爬取网站内容。Robots排除协议重点约定不希望爬虫获取的内容,如果没有该文件则表示网站内容可以被爬虫获得,然而,Robots协议不是命令和强制手段,只是国际互联网的一种通用道德规范。绝大部分成熟的搜索引擎爬虫都会遵循这个协议,建议个人也能按照互联网规范要求合理使用爬虫技术。