zoukankan      html  css  js  c++  java
  • 【转】反爬虫机制

    反爬虫机制

    爬虫进阶

    登陆

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

  • 相关阅读:
    Vue单元测试Karma+Mocha
    Vue将px转化为rem适配移动端
    vscode格式化代码插件Beautify
    vue项目初始化时npm run dev报错webpack-dev-server解决方法
    在vue项目中引入jquery
    vue全局使用axios插件请求ajax
    vue项目中postcss-pxtorem的使用及webpack中的配置 css中单位px和em,rem的区别
    快速搭建Vue项目
    vue mand-mobile按2.0文档默认安装的是1.6.8版本
    vue mandmobile ui实现三列列表的方法
  • 原文地址:https://www.cnblogs.com/cfsxgogogo/p/9776936.html
Copyright © 2011-2022 走看看