首页/新闻资讯/正文详情

Python后端爬虫专题09:服务器返回200也不代表该抓——robots.txt与域名访问策略

发布时间:2026/9/27 11:32:01 来源:云帆数科 栏目:资讯中心
Python后端爬虫专题09:服务器返回200也不代表该抓——robots.txt与域名访问策略
Python后端爬虫专题09服务器返回200也不代表该抓——robots.txt与域名访问策略上一篇练习完整答案base_delay0.5、max_attempts3 时第一次失败后等 0.5 秒第二次失败后等 1 秒第三次失败直接抛错因为已无下一次尝试。HTTP-date 可以用email.utils.format_datetime构造未来时间断言 delay 落在合理区间400 调用 1 次503 最多 3 次429 同样有限但等待不少于 Retry-After。fromjobradar.http_clientimportRetryPolicy policyRetryPolicy(max_attempts3,base_delay0.5)assertpolicy.delay_for(1,None)0.5assertpolicy.delay_for(2,None)1.0assertpolicy.delay_for(1,2)2.0robots.txt 能做什么不能做什么robots.txt 告诉自动客户端哪些路径希望被访问。TargetLab 对 JobRadarBot 允许/jobs、拒绝/admin。RobotsRespectingFetcher 首次访问来源站时下载规则之后缓存若路径被拒绝不发送页面请求。它不能授予版权、个人信息处理或商业使用许可也不是认证系统。攻击者可以忽略 robots所以真正私有数据必须用鉴权保护。采集方也不能把“robots 没写 Disallow”解释为无限制授权。为什么 allowlist 必须在服务端JobRadar API 接收 seed_url。如果只在前端下拉框限制调用者可直接 POST 任意地址让 Worker 访问内网管理页这就是 SSRF。CrawlPolicy 在服务器端检查 scheme、host 和凭据不在 allowed_hosts 中的域名在网络请求前被拒绝。allowlist 不是url.startswith(https://target.test)。https://target.test.evil.example会通过错误前缀判断https://target.testevil.example中前半段是用户名。必须解析 URL 后比较标准化 hostname。DNS 解析后的第二次检查一个看似公开的域名可能解析到 127.0.0.1、10.0.0.0/8、链路本地或云元数据地址。Worker 使用 getaddrinfo 得到所有地址再调用check_resolved_addresses。只要有一个危险地址且该 host 未被明确允许就拒绝。课程 Docker 中 TargetLab 的服务名解析到私网容器地址所以配置同时声明allowed_seed_hoststargetlab与allowed_private_hoststargetlab。这不是关闭保护而是对一个具体主机的明确例外。不要写allow_privatetrue让全部内网开放。DNS 重绑定还存在解析检查与实际连接之间的时间差。高安全生产实现可使用已验证 IP 建立连接并校验证书/Host或在网络层用 egress proxy 和防火墙限制目标。应用层检查是必要防线但不是唯一防线。robots 缓存与变化每个详情都下载 robots 会增加目标压力所以按 origin 缓存。长期运行的 Worker 还应设置 TTL 并在规则获取失败时选择保守策略。课程实现为了清晰在对象生命周期内缓存任务结束对象销毁下次任务重新读取。robots 返回 404 时怎么做需要项目决策RobotFileParser 通常认为没有限制但企业环境可能选择失败关闭。无论哪种都要记录规则 URL、状态和策略版本不能静默猜测。本篇检查点.\.venv\Scripts\python.exe-m pytest tests\test_robots_fetcher.py::test_robots_wrapper_denies_path_without_requesting_it-qRecordingFetcher 记录实际请求。期望列表里只有/robots.txt绝不能包含/admin/users这证明规则不仅“算出 False”而且真正阻止了网络副作用。真实调用路径Worker 装配HttpFetcher → RobotsRespectingFetcher → Crawler。外层先获取规则允许后才调用底层底层仍做 URL/DNS/响应大小检查。两者顺序清楚robots 表达目标站意愿CrawlPolicy 表达本系统授权与安全范围。不要把 robots 解析塞入 HTML parse_detail它与内容结构无关也不要让每个 Spider 自行写一套 allowlist。边界集中后HTTPX、Scrapy 和未来适配器才不会出现不同安全标准。本篇完整 robots 适配器在真实页面请求前读取并缓存每个来源站的 robots.txt。fromtypingimportProtocolfromurllib.parseimporturlsplitfrom.http_clientimportFetchResultfrom.policyimportRobotsRulesclassFetcher(Protocol):asyncdeffetch(self,url:str,*,etag:str|NoneNone,last_modified:str|NoneNone,)-FetchResult:...classRobotsDenied(PermissionError):目标站通过 robots.txt 声明当前路径不应被该爬虫访问。classRobotsRespectingFetcher:缓存同一来源的规则底层 fetcher 仍负责网络安全与重试。def__init__(self,fetcher:Fetcher,*,user_agent:str)-None:self._fetcherfetcher self._user_agentuser_agent self._rules:dict[str,RobotsRules]{}asyncdeffetch(self,url:str,*,etag:str|NoneNone,last_modified:str|NoneNone,)-FetchResult:partsurlsplit(url)originf{parts.scheme}://{parts.netloc}rulesself._rules.get(origin)ifrulesisNone:responseawaitself._fetcher.fetch(origin/robots.txt)rulesRobotsRules.from_text(response.text,user_agentself._user_agent,originorigin)self._rules[origin]rulesifnotrules.can_fetch(url):raiseRobotsDenied(frobots.txt denies path:{parts.path})returnawaitself._fetcher.fetch(url,etagetag,last_modifiedlast_modified)本篇课后练习给 RobotsRespectingFetcher 连续请求两个 jobs断言 robots 只下载一次。解释target.test.evil.example与target.testevil.example的实际 hostname。为公司内部授权站写一份范围清单来源、允许路径、频率、保留期限和联系人。下一篇会把“同一 URL 抓了两次”变成数据库层可证明的幂等行为。

相关推荐

微信小程序公司网站怎么制作一文搞懂避开高价坑
微信小程序公司网站怎么制作一文搞懂避开高价坑

微信小程序公司网站怎么制作一文搞懂避开高价坑 找建站公司最怕什么?不是技术不行,而是被坑高价。很多老板拿着几千块的预算,对方张口就是“定制开发”,最后报价五万起步,还包含一堆用不上的功能。其实, 微信小程序公司网站怎么制作… · 2026/9/27 11:32:01

3个实战案例教你怎么找做网站的避坑指南
3个实战案例教你怎么找做网站的避坑指南

3个实战案例教你怎么找做网站的避坑指南 自己不会代码想做网站,最怕的就是被忽悠。我见过太多老板拿着几千块预算,最后花了十万块还买了个“残次品”。今天不聊虚的,直接上3个真实发生的 实战案例… · 2026/9/27 11:32:01

网站建设的条件是什么2026最新
网站建设的条件是什么2026最新

网站建设条件与SEO注意事项全解析 还在纠结用哪个模板?别被那些花里胡哨的“一键生成”骗了。 很多老板找我们做站,第一句话就是:“我要个好看的。” 但真正让网站能赚钱、能带来客户的核心,往往藏在 注意事项 里。… · 2026/9/27 11:31:36

郑州做网站推广多少钱?3步对比评测省下一半预算
郑州做网站推广多少钱?3步对比评测省下一半预算

郑州做网站推广多少钱?3步对比评测省下一半预算 刚来郑州想搞点副业,手里有预算但没技术,想给公司做个官网引流,结果一打听报价,从几千到几万都有,听得人脑仁疼。自己不会代码想做网站,却怕被外包公司当韭菜割,这时候搞个 对比评测… · 2026/9/27 14:37:44

成都网络营销公司从零搭建网站必看的5个安全坑
成都网络营销公司从零搭建网站必看的5个安全坑

成都网络营销公司从零搭建网站必看的5个安全坑 上周刚帮一个做外贸的客户救火,他的网站首页突然弹出一堆乱七八糟的广告窗口,后台密码也莫名其妙改了。他问我:“成都网络营销公司做的站怎么这么快就挂了马?”我告诉他,这不是运气差,是底子没打好。很多… · 2026/9/27 14:37:44

资中网站建设避坑指南:5个关键注意事项与选型建议
资中网站建设避坑指南:5个关键注意事项与选型建议

资中网站建设避坑指南:5个关键注意事项与选型建议 找资中本地建站公司,最怕什么?不是代码写得烂,而是报价单上那行“定制开发”背后藏着的高价与隐形消费。很多老板觉得官网嘛,找个模板改改就行,结果一签约才发现,基础功能只给一半,想加个在线询盘还… · 2026/9/27 14:37:44

手把手教你在 VSCode 里用 TaoToken 配置 Maven 工程骨架(图文结合)
手把手教你在 VSCode 里用 TaoToken 配置 Maven 工程骨架(图文结合)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 14:37:38

MCP模型上下文协议深度剖析:2025年AI工具开发的新范式与TaoToken统一接入实践
MCP模型上下文协议深度剖析:2025年AI工具开发的新范式与TaoToken统一接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 14:37:32

一文搞懂网站虚拟空间作用:3个步骤解决域名服务器难题
一文搞懂网站虚拟空间作用:3个步骤解决域名服务器难题

一文搞懂网站虚拟空间作用:3个步骤解决域名服务器难题 刚接手江苏这边的几个外贸站项目,最头疼的就是客户问:“我域名买了,服务器也开了,这‘虚拟空间’到底是干啥的?”很多老板一听术语就晕,域名、服务器、空间,这三个词在他们眼里就是三个独立的坑… · 2026/9/27 14:37:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码