(河马代理IP)我们之所以使用python语法来来制作网络爬虫程序,是因为python语法简介以及强大的第三方库。网络爬虫的用途就是对数据进行采集,也就是讲互联网中的数据进行采集过来。
网络爬虫的难点在于网站方为了避免数据被爬取,增加了各种各样的反爬虫措施。如果想要继续从网站爬取数据就必须想办法绕过反爬虫机制的一切手段
我们拿以下的网站举个例子
妹子图
相对于其他网站来说这个网站的反爬虫机制要简单的多。当我们使用网络请求库的时候,该网站会对检查灭个http请求的headers 头部中 Referer 字段。他会判断该字段是否为空的,如果说该字段是空的,那么他将不会返回正常显示的图片,而是返回一张带有“图片来自妹子网,请勿盗链”字样的图片。
遇到这种机制,突破也是比较简单。对每个 HTTP 请求,将页面的 url 地址填充到 Referer 字段中。
豆瓣
豆瓣是爬虫新手最好的指导老师,大部分新手都是从豆瓣中成长起来的。说起来豆瓣还是比较人性化的。
它的反爬虫机制大概如下:
1、在没有携带 cookie 的情况下,如果某个 IP 短时间高并发请求网站,该 IP 会立马被封。当 IP 被封,登录豆瓣网站会解封。
3、在携带 cookie 的情况下,某个 IP 请求网站过于频繁。豆瓣的反爬虫机制变为只封 cookie 不封 IP。也就说退出登录或者换个账号还能继续访问网站。
人家主人都那么人性化了,客人就要适可而止。我们只要在代码中登录账号,同时降低并发数,再随机延迟等待一段时间。我们的爬虫程序就不会被封杀了。
拉勾网
拉勾网其实刚开始的时候反爬虫的机制并没有那么严格。但是后期由于爬取的人数增加,网站管理员为了保护服务器增加一些手段。该网站的反爬虫机制大概是这样子。
1、在没有登录的情况下,程序只能连续访问 3 个 Url。如果再继续访问,网站会将链接重定向,然后提示我们登录。
2、如果在登录情况下,连续请求部分 url 之后,我们的 IP 会被封。
针对这样的爬虫机制,我们只能使用 IP 代理池来突破。