反爬虫机制
爬虫进阶
登陆
1.1 表单登陆
1.2 cookie 登陆
Scrapy模拟登陆
1.3 验证码登陆
1.3.1 验证码识别
对于网站有验证码的情况,我们有三种办法:
使用代理,更新IP;
使用cookie登陆;
验证码图片识别:
1)利用开源的Tesseract-OCR系统进行验证码图片 的下载及识别,再将识别的字符传到爬虫系统进行模拟登陆。
2)将验证码图片上传到打码平台上进行识别。如果不成功,可以再次更新验证码识别,直到成功为止。
验证码识别项目
2 反爬虫机制的处理
2.1 防止服务器长时间不响应——设置时间间隔(timeout)
2.2 防止爬虫抓取过快——items类与时间设置
2.3 伪装成浏览器或者”反盗链“
3 断线重连
def multi_session(session, *arg):
retryTimes = 20
while retryTimes>0:
try:
return session.post(*arg)
except:
print '.',
retryTimes -= 1
或
def multi_open(opener, *arg):
retryTimes = 20
while retryTimes>0:
try:
return opener.open(*arg)
except:
print '.',
retryTimes -= 1
这样我们就可以使用multi_session或multi_open对爬虫抓取的session或opener进行保持。
4 多进程抓取
多线程
Python多进程抓取
5 对于Ajax请求的处理
6 自动化测试工具 Selenium
[x] Selenium 爬虫实例
代理登陆爬“去哪儿”
爬取有两个需要注意的问题:
如何监控一系列网站的更新情况,也就是说,如何进行增量式爬取?
对于海量数据,如何实现分布式爬取?
存储
分析出我们需要的内容之后,接下来就是存储了。
我们可以选择存入文本文件,也可以选择存入MySQL或MongoDB数据库等。
存储有两个需要注意的问题:
如何进行网页去重?
内容以什么形式存储?
---------------------
作者:仲夏荧之火
来源:CSDN
原文:https://blog.csdn.net/qq_40170358/article/details/79144552?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!