爬虫之反爬思路与解决手段

阅读时间建议:4分钟
本篇概念比较多,嗯。。

0x01 反爬思路与解决手段

1、服务器反爬虫的原因

因为爬虫的访问次数高,浪费资源,公司资源被批量抓走,丧失竞争力,同时也是法律的灰色地带。

2、服务器反什么爬虫

三月爬虫:毕业生写的,不管服务器负载能力。
小公司:几个人缺钱,开始玩主流的爬虫数据分析,写的爬虫贼多,浪费资源。
个人爬虫:忘记停止的爬虫。
商业对手:很有钱,投入很大精力爬虫,浪费资源。
搜索引擎:通用爬虫,存在一些bug,对某一个网站持续爬取,他们技术很好,对服务器造成压力

3、反爬虫里的概念

爬虫:实用技术批量获取信息
反爬虫:阻止别人使用技术获取信息
误伤:服务器把普通用户屏蔽了
拦截:阻止爬虫访问
资源:机器和人力成本

4、反爬虫三个方向

4.1身份识别反爬

根据发出的请求符不符合浏览器发出携带的参数,那你就会被反爬。

4.1.1通过headers的ua字段反爬

如果我们不修改headers,那么ua那一行就是python或者是你用的模块名,这样很容易被反。

4.1.2referer字段反爬

看你是从哪发出的请求,一般浏览器自己带上,有的服务器在获取到一个请求后,要看从哪跳转的,如果没有referer,极有可能是爬虫,一般会被反。

4.1.3cookie反爬

通过检查cookie查看发起请求的用户是否具有权限。

4.1.4请求参数反爬

通过html文件中提取请求数据,需要仔细分析每一个包
通过发送请求来获取请求数据,需要搞清楚参数来源
js生成了请求参数,需要js2py获取js执行结果,或者用selenium
验证码反爬,需要打码平台或者机器学习,这里我推荐打码平台,成本低而且简单
(据说机器学习可以解马赛克?)

4.2爬虫行为反爬

众所周知,在爬取top250时,要先访问页面,获取详情url,振幅此页面发请求,针对每一步发出请求,服务器在此过程检查数据包中反爬。

4.2.1基于请求频率反爬

当某ip访问过量时,很大可能被反爬,需要降低爬虫采集速度或者使用代理池又或者是准备多个账号。

4.2.2 基于请求间隔的反爬

请求时间间隔十分规律,会被反爬,需要设置随机休眠或者是代理池或者多账号。

4.2.3 基于请求次数的反爬

比如支付宝,逆天给你限量转账400次,需要代理池或者多账号。

4.2.4 基于爬虫行为反爬

有些网站它的翻页url不是规律的,需要查看js一般里面有计算步骤
蜜罐获取爬虫ip———什么意思呢?
进入拉钩https://www.lagou.com/

图片


1、这里有很多求职信息,于是我们爬取它
2、在爬取的时候,爬到了一个隐藏的职位,这就是蜜罐,他就会确定你是爬虫,并且把你的代理池搞报废。
3、正常人看不到,而程序看得到,怎么实现呢?
4、检查这个节点,add attribute-》添加style=”dispaly:none”

图片

图片

5、于是就看不到了。
通过假数据反爬,就是往响应里添加垃圾数据恶心爬虫工程师,需要把数据库内容与世纪网页进行比对。
通过阻塞队列反爬,就是往响应url里添加垃圾url,需要对url进行过滤
通过阻塞网络IO,比如往你下载的数据里加个蓝光大电影(其实就是爬虫bomb,期待社区搞一个,搞搞新手),需要观察爬虫状态/多线程请求计时

4.3数据加密反爬

加大数据提取难度

4.3.1css字体反爬

进入猫眼https://www.maoyan.com/films/248172

图片


可以看到两个方块,但我检查的是9.1啊,说明这里有字体反爬虫
需要换成手机版
点这个

图片


(在我选中的里面有一个9.1)

图片

4.3.2css字体偏移

源码中的数据不是真正数据,需要计算css的位移(这哪是没找到例子)

4.3.3 数据化图片反爬

就是把数据写在图片里,需要使用图片解析引擎

4.3.4 编码格式反爬

每个格式都试试

 

1.print(response.content.decode("GBK"))

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/23366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cy5.5-甘氨鹅去氧胆酸荧光染料标记物:一种生物成像工具

在现代生物研究和医学诊断领域,荧光染料标记物扮演着举足轻重的角色。它们能够实现对生物体内特定分子或细胞的非侵入性、实时追踪,从而为我们揭示生命过程的奥秘提供工具。 Cy5.5-甘氨鹅去氧胆酸荧光染料标记物的结构与特性 Cy5.5-甘氨鹅去氧胆酸荧光染…

水库大坝安全监测系统打通监控数据“最后一公里”

一、概述 我国有水库8万座左右,其中土石坝多数,病险水库占水库也很多。众所周知,水库在防洪、兴利上具有重要的调节作用,如何保证水库安全,及合理有效的利用水资源,是水利建设者需要探讨的主要内容。科学技…

【Python字符串攻略】:玩转文字,编织程序的叙事艺术

文章目录 🚀一.字符串基础🌈二.查看数据类型⭐三.转化❤️四.字符串索引🚲五.字符串切片🎬六.字符串切片-步长☔七.反向切片注意事项🚲八.字符串💥查💥改💥删 ❤️九.字符串拼接&…

强化用户登录接口:解决登录接口被攻击导致掉线卡顿!

一、引言 用户登录接口是任何Web应用的核心部分,它负责身份验证和授权流程。然而,这些接口也常常成为黑客攻击的目标,尤其是当涉及到动态请求处理时。动态请求通常指的是根据用户输入生成的请求,这为诸如SQL注入、XSS攻击和CSRF攻…

Ansys Mechanical|使用CABLE280和LINK180单元建立线缆模型

一. CABLE280和LINK180单元都可以用于此分析。它们都可以用来划分梁实体。下面是这两种单元的特性。 CABLE280单元 适用于仅分析单向拉伸场景,比如线缆 不包括剪切变形影响结果 每个节点有三个自由度:Ux,Uy,Uz 与属…

【Qt】 new成功,但是没有进入到构造函数。

NameTest工程中 nametest.cpp NameTest::NameTest() {pdata new privateAB; }NameTest::~NameTest() {if (pdata){privateAB *p (privateAB *)pData; //void *pdata nullptr;delete p;pdata nullptr;} }内部类: privateAB #include "private.h"#i…

消息队列的 6 种经典使用场景和 Kafka 架构设计原理详细解析

今天来聊一聊 Kafka 消息队列的使用场景和核心架构实现原理,帮助你全面了解 Kafka 其内部工作原理和设计理念。。 Apache Kafka 是一个高吞吐量、分布式的流处理平台,广泛应用于实时数据管道和流处理应用中。 Kafka 以其高性能、低延迟、扩展性和可靠性…

Android14 WMS-窗口绘制之relayoutWindow流程(二)-Server端

本文接着如下文章往下讲 Android14 WMS-窗口绘制之relayoutWindow流程(一)-Client端-CSDN博客 然后就到了Server端WMS的核心实现方法relayoutWindow里 WindowManagerService.java - OpenGrok cross reference for /frameworks/base/services/core/java/com/android/server…

任务3.5 清洗网址中的垃圾字符

本实战任务聚焦于数据清洗在Java编程中的应用,特别是清洗网址中的垃圾字符。数据清洗是确保数据质量的重要环节,它帮助开发者去除数据中的异常、错误或无关字符,从而提高数据分析的准确性和有效性。 任务背景:理解数据清洗的重要性…

刷代码随想录有感(93):贪心算法——无重叠区间(区间重叠问题:求区间重叠次数)

题干: 代码&#xff1a; class Solution { public:static bool cmp(vector<int>& a, vector<int>& b){return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), c…

vulnhub靶机实战_DC-2

下载 靶机下载链接汇总&#xff1a;https://download.vulnhub.com/使用搜索功能&#xff0c;搜索dc类型的靶机即可。本次实战使用的靶机是&#xff1a;DC-2下载链接&#xff1a;https://download.vulnhub.com/dc/DC-2.zip 启动 下载完成后&#xff0c;打开VMware软件&#xf…

SendGrid发送邮件时如何调用API接口群发?

SendGrid发送邮件模板如何定制&#xff1f;邮件发送限制有哪些&#xff1f; SendGrid发送邮件是一种方便快捷的方式&#xff0c;可以在应用程序或网站中轻松地发送大量邮件。通过调用SendGrid的API接口&#xff0c;您可以实现群发邮件&#xff0c;无论是通知用户、发送营销邮件…

HDFS文件块损坏处理方案

1、问题概述 flume采集文本文件存储到hdfs中hive的ods层目录,并在hive中通过msck repair table刷新元数据,加载文本文件。报错如下: 2、问题分析 文件块BP-531411289-172.31.57.12-1539657748238出现了未知异常,导致namenode不能获取该文件块的信息,该文件块是由flume采…

小程序开发平台——搭建全功能小程序商城功能 前后端分离 带完整的安装代码包以及搭建教程

系统概述 随着电子商务的蓬勃发展&#xff0c;越来越多的企业和商家希望拥有自己的线上商城&#xff0c;以拓展销售渠道和提升用户体验。然而&#xff0c;传统的商城开发方式往往成本高、周期长&#xff0c;且难以满足快速变化的市场需求。因此&#xff0c;我们致力于打造一款…

成立不到一年,EDA“黑马”再获亿元级融资,国产自主黄金期加速到来

本土EDA厂商派兹互连 再获亿元级融资 电巢获悉&#xff0c;成都派兹互连电子技术有限公司(以下简称“派兹互连”)于近日完成超亿元产业方追加投资&#xff0c;本轮融资将用于研发投入、产品迭代及技术创新等方面。 同时我们了解到&#xff0c;派兹互连已与多家领先EDA/CAE产品…

干货分享:有哪些好用的绩效管理工具?

绩效管理在诸多企业中占据着举足轻重的地位&#xff0c;但同时也是一个令人头痛的问题。特别是在年终的绩效考评环节&#xff0c;它往往变得流于形式&#xff0c;成了一项例行公事。尽管每个人都被要求参与这一流程&#xff0c;但很少有人真正关心考核结果是否公正合理&#xf…

模拟实现priority_queue

文章目录 priority_queue简介priority_queue的实现Myless和Mygreaterpushpop常规接口 全部代码测试代码 总结 priority_queue简介 priority_queue是优先级队列。 什么是优先级队列&#xff1f; 优先级队列&#xff08;Priority Queue&#xff09;是一种数据结构&#xff0c;用于…

579页 | 工业数字孪生建模与应用(免费下载)

【1】关注本公众号&#xff0c;转发当前文章到微信朋友圈 【2】私信发送 工业数字孪生建模与应用 【3】获取本方案PDF下载链接&#xff0c;直接下载即可。 如需下载本方案PPT/WORD原格式&#xff0c;请加入微信扫描以下方案驿站知识星球&#xff0c;获取上万份PPT/WORD解决方…

节点间通路

题目链接 节点间通路 题目描述 注意点 图是有向图节点编号大于等于 0 小于 n图中可能存在自环和平行边 解答思路 初始想到的是使用广度优先遍历&#xff0c;从start开始&#xff0c;存储每个点所能到达的其他节点集合&#xff0c;直到到达target或者不能到达新的节点为止&…