爬虫和反爬虫
爬虫:利用一定的技术手段从网页中或者app中提取一些原始数据,并对原始数据进行过滤,得到结构化的数据。
- 在请求头中,设置User-Agent的值,伪装成浏览器。
- 在请求头中,设置Referer的值,伪装是从浏览器页面跳转过来的。
- 使用代理IP,每次请求都切换一个代理IP去向对方的网站发送请求,来伪装真实IP。
- 识别验证码,通过人工打码或者在线打码识别验证码,通过验证码发送到对方后台,通过验证。(注意:写爬虫程序时,还是尽量避免让页面出现验证码。)
通过代码来模拟登录或者通过用户之前的Cookie信息来免登录。(优先选取cookie免登录,不用分析登录过程。) - 利用多账号进行爬虫,每次请求的时候,都随机切换一个账号进行请求。
- 针对加密数据,找出数据加密的算法,还原数据加密的过程,从而进行解密。
反爬虫:在后台或服务端,来限制爬虫的行为。
- USer-Asgen(重要):正常情况下是浏览器标识:爬虫,python3.7/scray:可以返回一个错误的页面。
- Referer(不重要):正常情况下,会引用一个引用地址。爬虫中,这个值是空的。
- 检测IP(重要):正常情况下,对一个IP地址对于网站访问频率是比较慢的;爬虫对网站访问速度非常快,一秒钟同时请求十几个url;
- 出现验证码(重要):影响爬虫速度,为了确认是否为爬虫,让用户去输入。
- 要求用户登录:如果不登录,无法访问页面内容。
- 网站对于同一用户的访问频率也做出了限制,如果发现同一用户一定时间内访问次数过多,会对这个用户进行访问控制。
- 数据加密:对一些重要的数据进行加密,或者对一些重要的js代码进行加密。