01 爬虫简介

爬虫简介

1. 爬虫概述

  • 什么是爬虫?

    • 通过编译程序,让其模拟浏览器上网,然后再互联网中爬取数据的过程
      • 关键词抽取:
        • 模拟:浏览器就是一个纯天然最原始的一个爬虫工具
        • 爬取:爬取一整张页面源码数据/爬取一整张页面中的局部数据
  • 爬虫的分类:

    • 通用爬虫
      • 要求我们爬取一整张页面源码数据
    • 聚焦爬虫
      • 要求爬取一张页面上的局部数据
        • 聚焦爬虫一定是建立在通用爬虫基础之上的
    • 增量式爬虫
      • 用来检测网站数据的更新情况,以便爬取到网站最新更新出来的数据
    • 分布式爬虫
      • 提高爬虫效率
  • 反爬机制:

    • 是作用到门户网站中,如果网站不想爬虫轻易爬取到数据,它可以制定相关的机制或者措施来阻止爬虫程序爬取数据
  • 反反爬策略

    • 是作用于爬虫程序中,我们爬取可以制定相关的策略破解反爬机制从而爬取到相关数据

2. 反爬机制与反反爬策略:

# 反爬机制:
	1. robots协议(第一个反爬机制):
		是一个纯文本的协议,协议中规定了该网站中哪些数据可以被哪些爬虫爬取,哪些不可以被爬取。
	2. 响应数据乱码
	3. UA检测
		网站后台会检测请求对应的User-Agent,以判定当前请求是否为异常请求。
	4. ajax 动态传输数据(发起ajax请求的)
	5. 懒加载(广泛运用于图片网站)
		只有当图片被显示在浏览器可视化范围之内才会将img的伪属性变成真正的属性。如果是requests发起的请求,requests请求是没有可视化范围,因此我们一定要解析的是img伪属性的属性值(图片地址)
	6. cookie 
		有些网站需要在headers中携带cookie才能将正确的数据返回出来
	7. 异常请求
		爬虫对某网站发出高频请求(一分钟几百次请求),网站会将其当作异常请求,从而封ip。这些需要看别人后端的设计,有些如果用同一个ip去访问网站的多页,可能导致获取不到数据
	8. 登录模块
		有些数据需要在登录之后才可以看到数据
# 反反爬策略:
	1. 君子不妨小人(不遵从该协议即可)
	2. response.encoding = 'utf-8' / response.encoding = 'gbk' 
		爬取网站时需要看该网站编码是什么,有些是gbk
	3. UA伪装
		a. 被作用到了到部分的网站中,日后我们写的爬虫程序都默认带上UA检测操作。
		b. 从抓包工具中捕获到某一个基于浏览器请求的User-Agent的值,将其伪装作用到一个字典中,将该字典作用到请求方法(get,post)的headers参数中即可。
	4. 通过抓包工具,看到响应中没有数据,可以通过全局搜索,看关键词出现在了哪一个数据包中。找到数据包之后,就可以看到正确的url,请求方式,请求参数,响应数据
		a. 全局搜索不一定能找到数据包,因为有些数据通过了加密
	5. 通过分析网页之后,知道是图片懒加载的话,就必须将img伪属性的属性值给解析到。
	6. 通过手动(将抓包工具中的cookie粘贴到headers中,有时效)或者自动(通过session自动处理cookie)的方式将cookies添加到请求头中
	7. 被封ip之后,使用代理操作,可再次访问网站。这样就相当于那代理的ip再次访问网站而不是自己的ip。
	8. 模拟登录,首先去注册该网站,然后打开抓包工具,查看登录时客户端向服务端发送了哪些参数,然后自己模拟出来。有些参数是动态的(验证码),需要对图片进行一个动态识别(采用超级鹰等),然后将其加到请求参数中。如果看到一些混乱的键值对参数,而不是我们输入数据,我们可以先判断这些参数是不是动态的(多登录几次,看看value值是否一致),如果不一致,就去首页的源码中搜索它的key,获取到它的value;没有的话就去抓包工具中进行全局搜索,找到它的key,获取到它的value。
posted @ 2021-09-16 15:38  超暖  阅读(108)  评论(0)    收藏  举报