Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
K
kb
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • kb
  • Wiki
    • Best_practice
  • spider

Last edited by 吴一博 Feb 27, 2021
Page history
This is an old version of this page. You can view the most recent version or browse the history.

spider

一、请求未正常获取到数据可能原因

(1)、headers中某些参数设置不能通过服务器检测
    1、content-length
        说明:该字段用于指定响应大小,但是scrapy框架下使用该参数可能会存在返回400错误,这是Twisted本身存在的问题。
        解决方案:去除该字段
    2、user-agent
        说明:指明浏览器类型,该字段可配合ip等其他数据标识请求,反爬中常用作频率检测指标,一旦超过设定的阈值将获取不到数据。
        解决方案:随机user-agent,pc web端可使用fake_useragent包
    3、refer
        说明:指明上一次请求的url,反爬时也有可能检测该字段,url一定要写正确
    4、cookie
        说明:指明cookie,服务器可通过该字段标识请求,该字段存在字段设置不正确、字段正确但是cookie使用时间过期或者使用次数到达限制等问题
        解决方案:对于段正确但是使用时间过期或者使用次数到达限制的问题,需频繁更换cookie
 (2)、请求中某些参数设置不正确
 (3)、出口ip被封
  总结:请求未正常获取到数据可能原因不只于上面的例举,但是发现错误的方法都是相同的,都是先使用浏览器正常访问,复制成功获取到数据时请求的headers、url和
        data,写一个可以成功获取到数据的demo,再和无法获取到数据的爬虫程序对比,控制变量法找到关键因素。
Clone repository
  • README
  • basic_guidelines
  • basic_guidelines
    • basic_guidelines
    • dev_guide
    • project_build
    • 开发流程
  • best_practice
  • best_practice
    • AlterTable
    • RDS
    • azkaban
    • create_table
    • design
    • elasticsearch
    • elasticsearch
      • ES运维
    • logstash
View All Pages