scrapy(三)

来源:互联网 发布:ubuntu卸载搜狗输入法 编辑:程序博客网 时间:2024/05/21 04:44

反爬措施

三个策略方向

  • 判明用户身份
    • User-Agent
    • Cookies
    • Refer
    • 验证码(常用:打码平台)
  • 分析用户行为
    • 并发识别
    • 在线活动时间
    • 页面添加一些正常浏览器浏览访问不到资源
  • 动态加载数据
    • ajax技术

反反爬与下载器中间件

常见反反爬措施

  • 模拟用户头
    • 设置位置
      • settings文件
      • 创建请求时
      • 下载器中间件
  • 请求延迟
    • settings文件中设置 DOWNLOAD_DELAY = n
    • 一般测试目标站点阈值后设置
  • Cookies检测
    • settings文件中 COOKIES_ENABLED = False
  • Ip代理池
    - 适用范围:不需登录或部分需要登录站点
    - 代理来源:
    - 国内:付费/采集免费代理
    - 自建
    - 云主机支持多ip
    - ADSL拨号服务器
    - Crawlera:scrapy自有(速度慢,不建议使用)
    - 使用代理:在下载器中间件中使用代理
  • 动态数据加载
    • 在中间件中使用 selenium
    • 注:使用selenium后高性能消失;有些站点能识别 phantomjs浏览器,需使用带界面浏览器

下载器中间件

  • 功能:全局修改Scrapy request和Response
  • 使用:
    • 编写处理方法:
      • 处理请求:process_request
        • 功能:加用户头、加代理、调用 selenium获取动态加载数据
      • 处理响应:process_response(self,request,response,spider)
  • 开启中间件
    • settings文件中配置中间件参数

常用settings文件设置

log信息

  • LOG_ENABLE:是否开启log
  • LOG_ENCODING:编码格式
  • LOG_FILE:log文件路径
  • LOG_LEVEL:
    • CRITICAL - 严重错误(critical)
    • ERROR - 一般错误(regular errors)
    • WARNING - 警告信息(warning messages)
    • INFO - 一般信息(informational messages)
    • DEBUG - 调试信息(debugging messages)

其他:

  • CONCURRENT_REQUESTS:下载器并发数量设置,默认16
  • DEPTH_LIMIT:爬取深度
  • DOWNLOAD_TIMEOUT:下载超时
  • CONCURRENT_ITEMS :item管道同时处理item数量
  • CONCURRENT_REQUESTS_PER_DOMAIN:域名的并发请求
  • CONCURRENT_REQUESTS_PER_IP:ip的并发请求数量

    • 反爬措施
      • 三个策略方向
    • 反反爬与下载器中间件
      • 常见反反爬措施
      • 下载器中间件
    • 常用settings文件设置
      • log信息
      • 其他

原创粉丝点击