news 2026/7/28 14:49:07

Python 自动化接单实战(三):公开网页文本抓取器如何做到可交付

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 自动化接单实战(三):公开网页文本抓取器如何做到可交付

网页抓取类需求非常常见,但真正能交付的脚本不能只在开发者电脑上偶尔成功一次。它至少要回答四个问题:抓哪些页面、是否允许访问、失败后如何记录、客户怎么重复运行。

我把这类需求整理成了一份公开可运行的最小样品:

  • 源码与说明:https://github.com/jhhjwei/codex-runner/tree/main/demos/public-web-text-scraper
  • 面向公开、无需登录的普通网页
  • 检查robots.txt
  • 默认只跟随同域链接
  • 可配置最大页数、访问间隔和超时时间
  • 输出 URL、标题、正文、状态和错误到 CSV/JSON

一、先限制范围,再开始抓取

很多抓取脚本的问题不是解析失败,而是边界没有定义。一个起始页面可能包含外部链接、下载链接、登录页和无限分页。如果程序见链接就跟,很容易跑出预期范围。

样品使用 JSON 配置明确约束:

{"start_urls":["https://example.com/"],"same_domain_only":true,"max_pages":5,"delay_seconds":1.0,"timeout_seconds":20}

same_domain_only防止爬虫跳到外部站点,max_pages提供明确停止条件,访问间隔则避免在短时间内向目标站点发送过多请求。真实项目还可以加入路径白名单,例如只允许/docs//help/下的页面。

二、把站点规则当成程序输入

公开可访问不等于可以无限制抓取。程序会根据目标域名读取robots.txt,若规则不允许当前 User-Agent 访问某个 URL,就记录为blocked_by_robots,而不是尝试绕过。

待访问 URL -> 检查协议与域名 -> 查询 robots.txt -> 获取 HTML -> 校验 Content-Type -> 提取标题、正文和链接 -> 写入结果或错误记录

这份样品不处理登录、验证码、付费墙或访问控制。需要身份验证的数据,只能在客户明确拥有权限并提供合规测试环境时另行设计。

三、正文提取不能把脚本和样式一起保存

直接读取 HTML 的全部文本,经常会混入 JavaScript、CSS、导航噪声和隐藏内容。样品基于 Python 标准库的HTMLParser,跳过scriptstylenoscriptsvg等标签,并合并可见文本。

每个页面最终产生一条结构化记录:

{"url":"https://example.com/guide","title":"Getting Started","text":"...","status":"ok","error":""}

若页面超时、返回非 HTML 内容或解析失败,程序仍保留 URL、状态和错误原因。这样客户能区分“页面没有内容”和“程序没有成功访问”。

四、用离线测试验证核心逻辑

网络测试容易受外部站点波动影响,因此样品的自动测试不访问互联网,而是验证两部分确定性逻辑:

  1. HTML 中的标题、正文和链接是否正确提取;
  2. 同域限制、协议过滤和 URL 标准化是否正确。

运行方式:

cddemos/public-web-text-scraper python-munittest-v

真正交付前,还应在客户允许的目标站点上做小样本验收,并确认字符编码、分页方式、字段完整率和重复数据处理方式。

五、真实项目可以怎样扩展

基于这份骨架,常见扩展包括:

  • 指定 CSS/XPath 字段;
  • 下载 PDF 与文本附件;
  • 增量抓取与内容去重;
  • JavaScript 渲染页面支持;
  • Windows 图形界面或可执行文件;
  • 定时运行、结构化日志和有限重试;
  • 输出到数据库、Excel 或内部 API。

报价前,需要客户提供目标 URL、字段清单、预计页数、运行频率和验收样例。对于公开、范围清晰的小任务,可以先做 3–5 个页面的最小验证,再扩展到完整范围。

需要类似工具,可以通过下面的入口提交公开 URL、脱敏样例和期望输出,我会先免费判断可行性:

https://github.com/jhhjwei/codex-runner/issues/new?template=code-fix-request.yml


📌 本文从范围限制、站点规则、正文提取和离线测试四个方面,搭建了公开网页文本抓取器的可交付骨架。

💬 你在网页文本采集中,最常遇到的是分页、动态渲染、字段变化还是内容去重问题?

👉 关注《Python 自动化接单实战》,下一篇继续处理 PDF 文本与表格提取中的版式边界。

参考来源

  • Dev.to|6 Open Source Tools That Give You the Web Back
  • Hacker News|Removing React.js and adapting htmx
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 14:48:48

c++ array学习

参考资料: cppreference.com 本文代码: 本文源码 array和vector的区别是array是和C中的数组类似,不能动态改变数组大小,所以会比vector少很多函数。 目录隐式定义的成员函数1.operator (将另一个容器拷贝过来&#x…

作者头像 李华
网站建设 2026/7/28 14:46:42

Windows 10完美运行Android应用:WSA-Windows-10逆向移植完整指南

Windows 10完美运行Android应用:WSA-Windows-10逆向移植完整指南 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 还在羡慕Windows 11用…

作者头像 李华
网站建设 2026/7/28 14:46:26

学术版Codex技术特性与应用场景研究分析

搞科研的大家!找英文文献依然是科研路上最头疼的一道坎儿吧? 尤其是现在AI工具层出不穷,老工具也在不断升级,选对平台能省下大把时间。今天我给大家盘点8个好用的英文文献检索网站,涵盖传统权威平台 新一代AI智能工具…

作者头像 李华
网站建设 2026/7/28 14:46:15

如何10分钟掌握GoldHEN金手指管理器:PS4游戏修改终极指南

如何10分钟掌握GoldHEN金手指管理器:PS4游戏修改终极指南 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager 厌倦了在PS4游戏中反复刷资源、卡关无法前进?Gold…

作者头像 李华
网站建设 2026/7/28 14:45:38

TPIC7710EVM评估模块:汽车电子驻车制动系统ASIC验证实战指南

1. 项目概述与核心价值 在汽车电子,特别是车身控制与底盘电控领域,电子驻车制动(EPB)系统正迅速取代传统的机械手刹。其核心在于将驾驶员的操作意图转化为精确的电机控制,实现驻车、释放乃至动态辅助制动。对于负责这类…

作者头像 李华
网站建设 2026/7/28 14:45:22

大模型能力边界:独立开发者实战中的「能做到」与「做不到」

大模型能力边界:独立开发者实战中的「能做到」与「做不到」 一、模型能力的「示范效应」与实战落差 过去18个月,大模型的能力演示视频和 benchmark 分数,给独立开发者创造了一种「几乎什么都能做」的预期。你看到模型能写诗、能解数学题、能生…

作者头像 李华