Python_爬虫心得1_流程

目录

        • 一、建议
        • 二、爬取步骤及思路
          • 1、确定要爬取的目标数据
          • 2、借助工具
            • (1)谷歌开发者工具
            • (2)mitimproxy抓包工具
            • (3)Postman验证前面自己分析的结果
          • 3、针对反爬制定处理方法
            • (1)对于user-agent
            • (2)referer检测
            • (3)对于cookie反爬
            • (4)对于验证码反爬
            • (5)IP限制频次
            • (6)反爬汇总
          • 4、编写代码,调试bug,获取数据

一、建议

  • 1、简单的一些静态网站可以直接看Chrome里面的Network请求分析获得数据。
  • 2、还有一些动态的网站ajax请求,可以借助一些工具进行分析,或者用selenium模拟浏览器行为也行。
  • 3、网站爬取心得2

二、爬取步骤及思路

1、确定要爬取的目标数据
  • 逆向推理分析网站结构,选择获取页面详情的最优路径:
    • (1)逆向推理分析网站结构:通过目标数据,逐步分析祖辈的url链接(ps:一般对首页的url进行get请求,会得到一些需要的cookie参数)。
    • (2)选择获取页面详情的最优路径: 一个页面可能有多个路径可以到达,在保证能够拿到全量数据的情况下,优先选择请求次数少的路径。比如如下图片中,可以按三种性质查询获得数据,通过分析,按地区总省查询就能获得全量数据。
      在这里插入图片描述
2、借助工具
  • 如谷歌浏览器自带的谷歌开发者工具、mitmproxy抓包工:具、postman测试数据等
  • 分析请求和响应(ps:并不是所有工具都必须一起使用,如果通过第一个就可以分析获得所要的数据,那么后面就不用使用那些工具了)。
  • 谷歌开发者工具确定具体返回数据的url;
  • mitmproxy查看隐藏的请求头信息,测试url请求参数的关键性;
  • postman验证以上分析的请求
(1)谷歌开发者工具
  • 详细介绍1;
  • 详细介绍2;
  • 通过打开谷歌开发者工具(鼠标右击检查),去查看哪个url能够返回数据,它的请求方式是什么,需要携带哪些参数,而这些参数往往影响的就是返回的数据的多少,拿最简单的说,比如有的链接携带了page参数,那就是翻页获得每页的数据。Python_爬虫心得1_流程_第1张图片
(2)mitimproxy抓包工具
  • 具体使用 ;
  • 通过mitmproxy可以查看在谷歌浏览器当中隐藏的一些请求头信息;也可以通过修改链接的参数进行测试,获得一个请求链接的关键参数,哪些是必须的,比如缺少了这个关键参数后,返回的网页数据就缺失了;还可以通过查看一个个请求链接,查看从哪个链接开始出现了哪些参数,进而呈现了所请求的参数。
    Python_爬虫心得1_流程_第2张图片
(3)Postman验证前面自己分析的结果
  • 使用方法见 ;
  • 注意事项 ;
  • 比如我通过Chrome开发者工具或者mitmproxy确定了可以返回数据的url是什么,它是请求方式,它需要带的参数,它的请求头信息;这时候就可以把这些数据放到postman里面去测试验证一下,是不是真的能够返回数据。
    Python_爬虫心得1_流程_第3张图片
3、针对反爬制定处理方法
  • 有的网站具有反爬,诸如user-agent和referer检测,cookie反爬、验证码反爬、IP限频次,包括一些由网页javaScript生成的隐藏参数的动态改变加密等。
(1)对于user-agent
  • 创建一个user-agent列表,每次请求随机替换
(2)referer检测
  • 把请求头里面的referer放进去,主要告诉它我们是从哪个页面访问开始的
(3)对于cookie反爬
  • cookie有两种方式生成,一种是浏览器请求,服务器返回响应中set-cookie而得的;这种可以通过requests请求,response.cookies获得cookie;
  • 另一种就是该网站里面写的代码如javascript生成的cookie。后者就比较麻烦,你可以要回到Chrome开发者工具里面去找到生成cookie的js文件,把它保存到本机生成cookie信息。
    Python_爬虫心得1_流程_第4张图片
(4)对于验证码反爬
  • 那就要破解验证码啦,可以自行百度看看破解验证码的思路;当然有的链接图片的验证码是动态变化的,这时候可以携带cookie参数试试,或者其他必要的参数,保持请求的一致性。
(5)IP限制频次
  • 一个是爬的慢一点,或者每隔一段时间休息一下,再继续爬,模拟的像一个正常用户的访问;第二个是加代理,用代理ip进行访问。
(6)反爬汇总
  • python常见反爬虫类型(信息校验型、动态渲染、文本混淆、特征识别反爬虫等)
  • python常见反爬虫类型(App反爬虫等)
  • python常见反爬虫类型(验证码)
4、编写代码,调试bug,获取数据

你可能感兴趣的:(SpiderCrawl)