今天说说反爬虫与反反爬虫

这是个人第五篇原创文章
python


喜欢爬虫的伙伴都知道,在爬网站的内容的时候并非一爬就能够了,有时候就会遇到一些网站的反爬虫,折回让你爬不到数据,给你返回一些404,403或者500的状态码,这有时候会让人苦不堪言,就如我昨天发的爬网易云音乐评论,在你爬的数据较多时,网站认为你是一个机器,就不让你爬了,网易云就给我返回了一个{"code":-460,"msg":"Cheating"},你不看下他的返回内容还不知道本身被反爬虫,不过不用担忧,既然网页有反爬虫,可咱们也有反反爬虫,今天就给你们说说反爬虫与反反爬虫。mysql



1web

网页的反爬虫sql


1.经过网页的请求头
浏览器

首先咱们先看看网易云音乐评论的请求头
服务器


User-Agent:这个是保存用户访问该网站的浏览器的信息,我上面这个表示的是我经过window的浏览器来访问这个网站的,若是你是用python来直接请求这个网站的时候,这个的信息会带有python的字眼,因此网站管理员能够经过这个来进行反爬虫。微信


Referer:当浏览器发送请求时,通常都会带上这个,这个可让网站管理者知道我是经过哪一个连接访问到这个网站的,上面就说明我是从网易云音乐的主页来访问到这个页面的,若你是用python来直接请求是,就没有访问来源,那么管理者就垂手可得地判断你是机器在操做。网络


authorization:有的网站还会有这个请求头,这个是在用户在访问该网站的时候就会分配一个id给用户,而后在后台验证该id有没有访问权限从而来进行发爬虫。
机器学习


2.用户访问网站的ippost

当你这个ip在不断地访问一个网站来获取数据时,网页后台也会判断你是一个机器。就好比我昨天爬的网易云音乐评论,我刚开始爬的一首《海阔天空》时,由于评论较少,因此我容易就获得全部数据,可是当我选择爬一首较多评论的《等你下课》时,在我爬到800多页的时候我就爬不了,这是由于你这个ip的用户在不断地访问这个网站,他已经把你视为机器,因此就爬不了,暂时把你的ip给封了。


2

咱们的反反爬虫


1.添加请求头

既然在请求网页的时候须要请求头,那么咱们只须要在post或者get的时候把咱们的请求头加上就能够了,怎样加?可使用requests库来添加,在post,get或者其余方法是加上headers参数就能够了,而请求头不须要复制全部的信息,只须要上面的三个之中一个就能够,至于哪一个本身判断,或者直接添加全部也能够,这样咱们就能够继续爬了。


2.使用代理ip

如果网站把你的ip给封了,你添加什么的请求头也都没有用了,那咱们就只有等他解封咱们才能够继续爬吗?我能够十分自信告诉你:不须要,咱们可使用代理ip来继续爬,咱们能够爬取网络上的免费ip来爬,至于免费的代理ip质量怎样大家应该知道,有必要能够买些难免费的,这样好点,咱们平时的练习用免费的代理ip就能够了,能够本身爬取一些免费代理ip建成ip池,而后爬的时候就把ip随机取出来,我偷偷告诉你:小编明天的文章就是教你怎样搭建本身的代理ip池。


END

结束语:上面的只是我的在爬一些网站时候遇到的一些反爬虫,这只是很简单的,还有那些动态网站的反爬虫本身尚未接触,等到之后接触了,再一 一补充。最后给你们在爬虫上的建议,就是爬取速度不要太快,最好每几个就隔几秒,不要给服务器形成太大的压力,也能够在爬虫的时候选择一些访问量少点的时间段,这是对服务器好,也是对你本身好!


python电子书:公众号回复pdf

黑马的2017年python零基础教程:公众号回复:黑马

机器学习(里面有优达资源):公众号回复:机器学习

某课的python入门与进阶课程:公众号回复入门


上一篇文章:利用python爬取网易云音乐,并把数据存入mysql


平常学python


一个专一于python的公众号

本文分享自微信公众号 - 平常学python(daily_learn)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索