反反爬:尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现。浏览器先请求了地址url1,保留了cookie在本地,之后请求地址url2,带上了之前的cookie,代码中也可以这样去实现。
反爬:
- 验证用户身份 (需要模拟用户身份)
- 分析用户行为 (模拟用户行为)
访问频率:ip代理池,多账号,阈值,不断测试看看判断爬虫与用户的临界值
在线时间:设置休眠
设置陷阱: 仔细观察吧,数据隐藏正常人不会发现,但是爬虫不一样会依次访问路径
假数据:仔细分析吧过滤掉假数据
阻塞任务队列:分析正常的url和假的之间的区别
常见的反爬手段和解决思路
反反爬的主要思路:尽可能的模拟浏览器(浏览器先请求了地址url1,保留了cookie在本地,之后请求了地址url2,在携带上cookie)
headers:user-agent 自己添加user-agent或是自动随机生成user-agent
referer 添加referer就可以
cookie
通过js反爬,通过验证码反爬,通过ip地址反爬,通过用户行为反爬,css反爬(去哪网,大众点评)其他反爬方式(猫眼电影(自己设置字体,或者爬手机端))
解决方法
打码平台(极验验证,云打码)
图像识别引擎(tesseract,openGL,OpenCV)tesseract使用:
需要先安装引擎:
win:https://code.google.com/p/tesseract-ocr/download/list
linux:https://code.google.com/p/tesseract-ocr/download/list
mac:brew install tesseract
使用: 终端中直接调用引擎解析图片数据:tesseract test.jpg result
python调用引擎解析图片:
安装库:pip3 install pytesseract
使用:from PIL import Image
import pytesseract
im = Image.open()
pytesseract.image_to_string()
图像识别引擎可以处理验证码,但是效率低下,如果想要提高识别效率,需要进行训练
大部分情况下可以直接用来提取图片数据