公告:

常见反爬虫策略

常见反反爬虫策略

    针对反爬策略1可以使用高匿代理IP解决;针对反爬策略2,如果不是每次都弹验证码也可以使用高匿代理IP解决,如果感觉高匿代理不稳定或者收集起来不方便使用Tor网络(不懂Tor?动动你的手指百度吧^_^)也可以,如果每次都弹验证码那就得涉及到验证码识别了,简单的验证码可以自己写代码处理,python有不少知名的图像处理(识别)库(如PIL/Pillow、Mahotas、Pymorph、pytesser、tesseract-ocr、openCV等)和算法(比如大名鼎鼎的KNN[K邻近算法]和SVM[支持向量机]),但复杂的验证码例如涉及逻辑判断和计算、字符粘连变形、前置噪音多色干扰、多语种字符混搭的大多也只能靠接入人工打码平台来对抗了;针对反爬策略3,由于采用异步加载方式,网页内容不会一次性全部展示出来,需要将滚动条滑到最底部才能继续浏览下一页内容,此时可以使用selenium+phantomjs解决,phantomjs是一个无头无界面浏览器,使用selenium可以驱动它模拟浏览器的一切操作,但缺点也很明显,爬取效率低;针对反爬策略4,看情况而定吧,如果是比较简单的死循环陷阱,可以对爬虫将要爬取的链接进行判断,不重复爬取相同的页面,scrapy的LinkExtractor设定unique参数为True即可或者直接设定爬虫的最大循环次数。高级的陷阱笔者还没遇到,暂不讨论。此外增加爬取间隔和禁用cookie也能降低爬虫被ban的概率。
  1. 在settings.py同级目录下新建文件useragent.py

时间:3年前 (2017/09/29) / 阅读:322 / 评论:0

反爬虫与反反爬虫策略