爬虫的具体介绍就不说了,介绍反爬虫的集中方式
1.模拟浏览器
2.Ip
3.登录
4.验证码
5.各种信息加密
6.请求频率
1.模拟浏览器
- 目前度娘一搜一大把,最集中的就是ua了,搭建一个随机ua池,不断的变化ua,很普遍的方法, 这里推荐一个大神写的开源库 fake-useragent https://github.com/hellysmile/fake-useragent 简单好用,可以随机变换ua,实现模拟多个浏览器的快捷方法。
- 防盗链,抓取图片经常会遇到,最简单的方式就是获取其Referrer,放到自己的 headers 中,具体自行度娘。
- cookie,这是一个最常见的反爬手段之一了,可以把它和登录放在一起。有些不需要登录的网站也会通过cookie来过滤一些没有经过伪装的爬虫,有些网站会在cookie中加入时间戳,然后加密。这些网站服务器会根据cookie设置过期时间;so,我们需要一个cookie池了,使用requests会很方便的搭建一个cookie池,当然了,强烈推荐requests大神的新作 requests-html,可以执行js,自己翻页什么的(偶像)
- 其他一些参数,请求头是反爬虫的重要手段和常用伎俩之一,我们如果发现数据没有,或者有问题,一定一定注意一些,通过抓包仔细分析
2.ip,请求频繁
- 很多新手或者某些人为了利益,制造很多的暴力爬虫(不限速,高并发请求),这会造成对方服务器压力巨大,甚至是死机,建议大家在练习或者工作的时候;养成良好的习惯,这是相互的过程,如果你很良好的请求。对方服务器没那么大压力,他的一些不那么重要的数据还是会很开心的让你访问的
- 其实代理ip很简单,requests, scrapy都有自己的方法来设置,网上也有很多的免费(西刺免费代理),付费代理(阿布云)等等,代理是没有办法的办法,毕竟我们自己的ip才是速度最快的,如果真的需要频繁更换代理Ip,建议搭建一个自己的代理ip池,定时监测,删除。
3.登录
- 可以用requests模拟登录,网上有很多,一般登录之后,保存cookie就可以了;当然注意我上面说的cookie过期时间,如果嫌麻烦,登录最常用的就是selenium了,简单快捷。selenium以被下降,不建议使用,可以使用Chrome内置的插件。
4.验证码
- 网上打码平台很多,也有详细的API,如果嫌麻烦,当然还是首选selenium(万金油),不过selenium会降低抓取的速度,请大家根据需要进行选择
5.信息加密
- 这类数据多用在一些核心的信息(价格,电话,图片等),有的使用js包裹,有的使用加密函数(sha,bas64,md5等等)
- 加密数据的典型就是某8同城了,它的价格可以看到,拿到是乱码一样的东西(生僻字?)。通过抓包,会发现它有一个自己的字符编码。然后还有解密什么的,度娘有人写过
cookie代理池和ip代理池都希望看静觅大神
转载自:https://blog.csdn.net/Li_G_yuan/article/details/86656964