爬虫是什么呢,就是地上爬的小虫子,就是爬虫咯。呵呵,开个玩笑,通常说的爬虫都是网络爬虫。那什么是网络爬虫呢,百度百科的解释是这样子的:python
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更常常的称为网页追逐者),是一种按照必定的规则,自动地抓取万维网信息的程序或者脚本。另一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。linux
额,这一大坨,总结来讲就一句话,就是从某个网站上获取某些你想要数据,而后保存起来。sublime-text
爬虫能够帮你爬到你想要的东西,好比说你想下载某个网站上面的图片、小视频、文章、文件,或者说大家公司想获取到对手公司网站上的一些数据用来分析市场,或者想要获取某一类网站用户的行为,用来分析用户的之后的走向,均可以用爬虫来获取到数据。再好比说你要作个什么内容类的app,相似今日头条的,那它里面的这些内容从哪里来的,它就是用爬虫,爬各类网站上热点新闻、八卦信息等等,再通过本身的加工放给用户去看。浏览器
我们要从一个网站下载一个图片的话怎么办,要浏览器里面打开这个网站, 而后右键保存图片到本地。网络
那爬虫呢,就是写代码把上面的这个过程自动化,自动帮我们作这个操做,不须要我们再手动点了。这就是爬虫的原理。app
爬虫的实质呢,就是写代码发http请求(浏览器里面打开发送的都是http请求),而后获取到response,我们再从response里面找到想要的数据,存储到本地。框架
爬虫协议就是你想用爬虫爬个人网站,那么你得听个人,哪些你能爬,哪些你不能爬。scrapy
怎么查看一个网站的爬虫协议呢,就在这个网站的域名后面加上robots.txt学习
好比说下面有:jd、百度、淘宝的爬虫协议网站
jd:https://www.jd.com/robots.txt
淘宝的:https://www.taobao.com/robots.txt
百度的:https://www.baidu.com/robots.txt
若是你要爬的网站域名加上robots.txt是404,那你就能够为所欲为的爬了。
不过就算爬虫协议里面写了,你也能够不遵照,可是也得注意一下,有的公司发现的话,会起诉的。好比说前几年著名的百度控诉360爬虫违反爬虫协议,赔偿70w。
爬虫协议里面有这么几个字段:
由于会有一些恶意的人,恶意的去用爬虫爬我们的系统,获取一些数据用来作一些很差的事情,这样就会我们的网站形成危害。
反爬虫就是干这个事的,网站后台有程序专门检测发这个请求是爬虫发的,仍是用户的正常请求(发请求就是打开一个页面),若是是爬虫发的话,那么就不给它返回数据,这就是反爬虫。
固然有反爬虫那就有针对反爬虫的策略,就是看谁技术高低的问题了~
Scrapy是python开发的一个爬虫框架,若是你要学习它的话,可能第一步在安装的时候,就会遇到不少问题,由于Scrapy不少模块都是基于linux下的,可能你在mac上或者linux上面安装的时候,不会有什么问题,可是Windows上面安装的话,可能会有各类各样的问题。
这里我就把遇到的问题整理下,怎么解决。
一、直接安装 pip install scrapy
二、安装的时候scrapy它要依赖不少其余的模块,通常都是其余的模块安装的时候会报错,由于pip安装的版本和实际的操做系统须要的版本对应不上,好比说twisted
三、在pip安装scrapy的时候,他会自动安装其余依赖的模块,安装到哪一个模块报错了,它会中止安装,看下面的图,就在安装twisted的时候报错了
四、打开https://www.lfd.uci.edu/~gohlke/pythonlibs/,找到安装报错的模块,手动下载对应操做系统的安装包,手动安装。
https://www.lfd.uci.edu/~gohlke/pythonlibs/这个网站是美国一个医科大学的网站,他这个里面有不少python第三方模块的安装包,打开这个网站以后,我们要装twisted,就直接搜twisted就能够了,能够看到有好几个安装包,根据本身的python版本和操做系统版本下载就行了,看下面的图。
六、下载以后它是一个whl的文件,也是直接用pip安装就好了
1
|
pip install C:\Users\bjniuhanyang\Downloads\Twisted-17.9.0-cp35-cp35m-win_amd64.whl
|
七、重复第一步
基本上安装scrapy出现的错误,都是由于单个依赖包有问题致使的,用此方法能够解决大部分问题