IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 爬虫陷入理论 -> 正文阅读

[Python知识库]爬虫陷入理论

面对爬虫的时候以往都是人为刀俎,我为鱼肉的状态。起码因为爬虫增加0.5倍工作量,为了提高系统安全,也是费尽心思。提出4阶段防御爬虫。

1.非法提交拉黑:
明显入侵提交检测到就把客户端IP拉黑禁用访问网站一段时间。
2.爬虫诱饵:
各业务嵌入各种爬虫诱饵链接。正常业务不会加载,爬虫爬取加载后即可判断是爬虫,进行拉黑禁用。
3.爬虫攻击:
借助自己客户端发布http服务。网站嵌入各种可用的、不可用的链接。爬虫爬取到触发的资源就用cmd获取到访问进程杀掉,主动攻击爬虫。
4.爬虫陷入

本次提出爬虫陷入理论,什么是爬虫陷入?
爬虫陷入是让爬虫进入无限套娃爬行。即无限递归,进入死循环难以跳出来。首先爬虫一般是爬行一个页面,然后把页面的各种url再爬行,依次铺开爬行整个网站。因为网站资源是有限的,只要记住爬行过的链接碰到后不爬行,就可爬取基本整个网站。基于此爬行原理设计爬行陷入。首先服务器后台实现虚了资源路由,请求某些路由就由后台代码按时间,唯一索引生成html、js等代码和里面的url。这样爬虫爬取第一个虚拟路由时候系统返回的资源里包含了当前时间和唯一序号生成的各种url路径。爬虫爬取这些子url又是虚拟路径,又会返回按时间和唯一生成的资源url路径。每次返回资源的内部url都是不重复的,那么爬虫从第一个虚拟路由爬行后不断爬取内部每个url,层层嵌套是没有尽头的。就会陷入一个无限递归的死循环状态。

爬虫爬取第一个虚拟url返回

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title>页面1</title>
</head>
<body id="bodyAll" style="background-color:#FDFDFD;overflow:hidden;">
    <marquee id="marquee" scrollamount="5" class="marquee"></marquee>
	<a href="../../login/core/frmLisCore20220518172901001.aspx"></a>
    <a href="../../login/core/LisCore20220518172901001.css"></a>
    <a href="../../login/core/LisCore20220518172901001.js"></a>
</body>
</html>

爬虫爬取…/…/login/core/frmLisCore20220518172901001.aspx返回

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title>页面2</title>
</head>
<body id="bodyAll" style="background-color:#FDFDFD;overflow:hidden;">
    <marquee id="marquee" scrollamount="5" class="marquee"></marquee>
	<a href="../../login/core/frmLisCore20220518172901002.aspx"></a>
    <a href="../../login/core/LisCore20220518172901002.css"></a>
    <a href="../../login/core/LisCore20220518172901002.js"></a>
</body>
</html>

然后爬虫爬取…/…/login/core/frmLisCore20220518172901002.aspx返回

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title>页面3</title>
</head>
<body id="bodyAll" style="background-color:#FDFDFD;overflow:hidden;">
    <marquee id="marquee" scrollamount="5" class="marquee"></marquee>
	<a href="../../login/core/frmLisCore20220518172901003.aspx"></a>
    <a href="../../login/core/LisCore20220518172901003.css"></a>
    <a href="../../login/core/LisCore20220518172901003.js"></a>
</body>
</html>

基于此理论,网站实现的虚拟路由要覆盖面广。让爬虫无法区分是虚拟的路由还是实际资源。构造的虚拟url尽量用字母,让爬虫难以用简单的包含数字剔除,然后再各个页面加入爬虫陷入url即可。以此扰乱爬行。结合前面三个理论多层级预防网站被爬取。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-27 17:17:41  更:2022-05-27 17:19:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:38:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码