【转】反爬虫机制

反爬虫机制

爬虫进阶

登陆

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
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/cfsxgogogo/p/9776936.html