专栏首页小詹同学一起看看这几个网站是如何反爬的 。

一起看看这几个网站是如何反爬的 。

文章来源 :公号极客猴 ,作者猴哥

阅读文本大概需要 4 分钟。

因为 Python 语法简介以及强大的第三方库,所以我们使用它来制作网络爬虫程序。网络爬虫的用途是进行数据采集,也就是将互联网中的数据采集过来。

网络爬虫的难点其实并不在于爬虫本身。而是网站方为了避免数据被爬取,增加了各种各样的反爬虫措施。如果想要继续从网站爬取数据就必须绕过这些措施。因此,网络爬虫的难点在于反爬的攻克和处理。那么本文主要介绍一些网站的反爬虫措施。

妹子图

这个网站的反爬虫机制比较简单。当我们使用网络请求库下载图片时,该网站会对检查每个 HTTP 请求的 headers 头部中 Referer 字段。它判断该字段是否为空,如果字段为空,那么不会返回正常显示的图片,而是返回一张带有“图片来自妹子网,请勿盗链”字样的图片。

遇到这种机制,突破也是比较简单。对每个 HTTP 请求,将页面的 url 地址填充到 Referer 字段中。

豆瓣

几乎所有的爬虫新手都会爬取豆瓣练练手。但是豆瓣还是保持开放的态度,反爬虫机制做得还是很人性化。它的反爬虫机制大概如下:

1、在没有携带 cookie 的情况下,如果某个 IP 短时间高并发请求网站,该 IP 会立马被封。当 IP 被封,登录豆瓣网站会解封。 3、在携带 cookie 的情况下,某个 IP 请求网站过于频繁。豆瓣的反爬虫机制变为只封 cookie 不封 IP。也就说退出登录或者换个账号还能继续访问网站。

面对这么体谅新手的网站,我们要下手不能那么猛。我们只要在代码中登录账号,同时降低并发数,再随机延迟等待一段时间。我们的爬虫程序就不会被封杀了。

拉勾网

拉勾网站刚出来的时候,反爬虫机制还没有现在这么严格。估计爬取网站的人多了起来,网站管理员为了保护服务器增加一些手段。该网站的反爬虫机制大概是这样子。

1、在没有登录的情况下,程序只能连续访问 3 个 Url。如果再继续访问,网站会将链接重定向,然后提示我们登录。 2、如果在登录情况下,连续请求部分 url 之后,我们的 IP 会被封。

针对这样的爬虫机制,我们只能使用 IP 代理池来突破。

汽车之家

汽车之家论坛的反爬虫机制就比较高级。它利用前端页面自定义字体的方式来实现反爬的技术手段。具体使用到是 CSS3 中的自定义字体(@font-face)模块,自定义字体主要是实现将自定义的 Web 字体嵌入到指定网页中去。这就导致我们去爬取论坛帖子的口碑时,获取到的返回文本中每隔几个字就出现一个乱码符号。

每次访问论坛页面,其中字体是不变的,但字符编码是变化的。因此,我们需要根据每次访问动态解析字体文件。

具体可以先访问需要爬取的页面,获取字体文件的动态访问地址并下载字体,读取 js 渲染后的文本内容,替换其中的自定义字体编码为实际文本编码,就可复原网页为页面所见内容了。

最后说句良心话,我们爬取别人网站的数据,要在不损害别人网站的情况下进行。所以建议大家不要在网站访问高峰的时候爬取数据,尽量选择在晚上进行爬取。同时设置延时操作降低并发数。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

往期推荐:

1. 这一定是学爬虫的你脑中闪现过的第一道邪念!

2. 卷积神经网络(CNN)学习笔记

3. 基于tensorflow的手写数字识别 。

欢迎点赞和转发分享

本文分享自微信公众号 - 小詹学Python(xiaoxiaozhantongxue)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 你为什么学爬虫?(赠书活动第③期)

    之前应邀转载了一个小伙伴的文章《爬取了陈奕迅新歌《我们》10万条评论数据发现:原来,有些人只适合遇见》,十分好评!小詹就想着爬一下曾经一度流行的那些青春校园电影...

    小小詹同学
  • NB,用这一篇文章带你了解什么是爬虫?

    小詹说:对于学 Python 的小伙伴来说,爬虫是大多数人的入门菜,很是因吹斯汀。那么到底什么是爬虫呢,这篇文章用一个简单的语言来一节入门课。以下为原文。

    小小詹同学
  • 反爬虫和反反爬虫(上篇)

    公众号爬取今日头条的那一期,不少小伙伴反应爬取下来的图片无法查看或者爬取不了,小詹也重新试了下,的确是的,写那篇推文的时候,头条还比较友好,没有添加反爬措施,大...

    小小詹同学
  • 盘点一些网站的反爬虫机制

    因为 Python 语法简介以及强大的第三方库,所以我们使用它来制作网络爬虫程序。网络爬虫的用途是进行数据采集,也就是将互联网中的数据采集过来。

    猴哥yuri
  • 反爬虫机制和破解方法汇总

    什么是爬虫和反爬虫? 爬虫:使用任何技术手段,批量获取网站信息的一种方式。 反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。 ? 常见的反...

    Python中文社区
  • Python爬虫| 不会分布式爬虫?带你一步一步写!

    首先,什么是分布式爬虫?其实简单粗暴一点解释就是我们平时写的爬虫都是孤军奋战,分布式爬虫就是一支军队作战。专业点来说就是应用多台机器同时实现爬虫任务,...

    Python进击者
  • 什么是“爬虫”技术?导致你买不到特价机票的原因

    有“机票代理”公司正在利用“爬虫”技术,抢占航企官网放出的低价票,利用航企允许的账期反复订票、退订,直至将票加价卖出。有专家指出,利用“爬虫”技术从虚占到变现过...

    企鹅号小编
  • Python爬虫之入门学习

    大家好,相信点进来看的小伙伴们都对爬虫非常感兴趣,博主也是一样的。博主刚开始接触爬虫的时候,就被深深吸引了,因为感觉SO COOL啊!每当敲完代码后看着...

    用户2769421
  • Python爬虫与反爬虫左右互搏(带视频)

    爬虫与反爬虫是两类互斥的应用,它们争斗了多年。就像病毒程序与反病毒程序,永远是先有病毒程序,再有反病毒程序一样,爬虫程序总是先诞生,然后网站服务商就会想尽办法不...

    蒙娜丽宁
  • 找python爬虫小项目?github给你准备好了!

    即使我们都是程序员,但我们也并非都会修电脑,都会做酷炫的ppt,都会优化系统卡顿。其实程序员也是分行业、分专业的,就像医生也分内外科、呼吸科、神经科神的。

    efonfighting

扫码关注云+社区

领取腾讯云代金券