• 11 提升爬虫效率和反扒


    提升scrapy爬取数据的效率

    增加并发:

    默认scrapy开启的并发线程为32个,可以适当进行增加。在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。

    降低日志级别:

    在运行scrapy时,会有大量日志信息的输出,为了减少CPU的使用率。可以设置log输出信息为INFO或者ERROR即可。在配置文件中编写:LOG_LEVEL = ‘INFO’

    禁止cookie:

    如果不是真的需要cookie,则在scrapy爬取数据时可以禁止cookie从而减少CPU的使用率,提升爬取效率。在配置文件中编写:COOKIES_ENABLED = False

    禁止重试:

    对失败的HTTP进行重新请求(重试)会减慢爬取速度,因此可以禁止重试。在配置文件中编写:RETRY_ENABLED = False

    减少下载超时:

    如果对一个非常慢的链接进行爬取,减少下载超时可以能让卡住的链接快速被放弃,从而提升效率。在配置文件中进行编写:DOWNLOAD_TIMEOUT = 10 超时时间为10s

    爬虫的反扒措施

    1、header  浏览器的请求头 (全国动产抵押监督管理平台)
    
    2、User-Agent  用户代理,表明访问源身份的一种方式  (全国动产抵押监督管理平台)
    
    3、Referer  访问的目标链接是从哪个链接跳转过来的(做防盗链的话,就可以从它入手)HTTP来源地址(referer,或 HTTP referer)是HTTP表头的一个字段,用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着HTTP来源地址,目前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。 (中国裁判文书网)
    
    4、Host  同源地址判断,用它会很有用 (IT桔子)
    
    5、IP  同一个IP短时多次访问,就很有可能是爬虫,反爬虫会对此做处理 (搜狗微信)
    
    6、访问频率 短时多次高并发的访问,基本上就是有问题的访问 (搜狗微信)
    
    7、Cookie 存储在浏览器端,常用来保存“认证数据”,请求会携带这些数据发送给服务器,这样服务器才能判断当前请求的状态 (北京市企业信用信息网)
    
    8、动态请求加载  通过Ajax异步加载的网页内容在网页源码中是没有的,网页返回的response中是解析不到我们想要的内容的 (大众点评)
    
    9、网站数据加密  抓取下来的数据是经过加密的,给爬虫数据处理带来问题 (去哪儿)
    
    10、混淆js加密  首次请求数据时,服务端返回动态的混淆加密过的JS,而这段JS的作用是给Cookie添加新的内容用于服务端验证,此时返回的状态码一般不是200。浏览器带上新的Cookie再次请求,服务端验证Cookie通过返回数据(这也是为嘛代码不能返回数据的原因)  (中国裁判文书网)
    
    11、验证码  用户请求频率过高的时候,有些网站就会触发验证码验证机制,让你输入各种验证码 (12306)
    
    12、登录  需要用户登录之后才能够获取页面中的信息,那么这种防护能非常有效的防止数据大批量的被爬取 (IT桔子)
    
    13、限制网页返回数据条数  网页刚开始会显示很多条,当你账号或者一段时间后网页返回数据,你只能局限于前几页或者前几条 (IT桔子)
    
    14、Noscript标签的使用 <noscript>标签是在浏览器(或者用户浏览标识),没有启动脚本支持的情况下触发的标签,在低级爬虫中,基本都没有配置js引擎,通常这种方式和Ajax异步加载同时使用。用于保护自己不想让爬虫接触的信息。当JavaScript被禁用或者不被支持时提供的一种代替方式,即 noscrip 标签中的内容会在此时被浏览器解析,作为 javascript 不可用时的备选方案。
    
    1 user-agent
    2 referer
    3 cookie(cookie池,先访问一次)
    4 频率限制(代理池,延迟)
    5 js加密(扣出来,exjs模块指向)
    6 css加密
    7 验证码(打码平台),半手动
    8 图片懒加载
    
  • 相关阅读:
    配置VSFTP文件服务器
    Apache Tomcat服务部署网站
    NFS实现Unix-like文件共享
    OpenSSH 服务配置与管理
    Redis 数据库配置与应用
    Rsync+Inotify 实现数据同步
    PXE+Kickstart 自动化部署系统
    PostFix+Dovecot 部署邮件系统
    部署MooseFS分布式文件系统
    MVC5+EF6 完整教程
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/13450560.html
Copyright © 2020-2023  润新知