本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
常见问题解答
如果 robots.txt 文件不可用怎么办?
没有 robots.txt 文件并不一定意味着你不能或不应该抓取网站。抓取应始终以负责任的方式进行,尊重网站的资源和网站所有者的隐含权利。
如果 sitemaps.xml 文件不可用怎么办?
根据要求,您可以执行以下操作之一:
-
搜索 HTML 站点地图 — 查找列出网站上重要页面的 HTML 站点地图页面。它们通常链接在页脚中。
-
从主页抓取 — 从主页开始爬行,然后点击内部链接来发现其他页面。
-
分析网址模式 — 分析网站的网址结构以识别模式并以编程方式产生潜力 URLs。
-
查看 robots.txt 文件 — 检查 robots.txt 文件中是否存在任何不允许的页面或目录。这些可以提供有关网站结构的线索。
-
查看 API 端点 — 一些网站提供可用于检索内容和结构信息的 API 端点。
-
查看搜索引擎结果 — 使用搜索引擎通过以下网站查找网站的索引页面:搜索运算符
,例如 site:example.com。 -
分析反向链接 — 分析指向该网站的反向链接,以发现其他网站链接到的重要页面。
-
查看网络档案 — 查看互联网档案(例如 Wayback Mac
hine),查看网站中可能有站点地图或不同结构的旧版本。 -
寻找内容管理系统 (CMS) 模式 — 如果您能识别 CMS,请使用与该系统关联的常用 URL 模式。
-
确认 JavaScript 渲染 — 如果网站严重依赖该网站 JavaScript,请确保您的抓取工具能够进行渲染 JavaScript 以发现动态加载的内容。对于某些网站,sitemap.xml 文件会在启用 JavaScript 渲染后加载。
我能否使用无服务器解决方案来代替 Amazon EC2 或 Amazon ECS?
是的。 AWS Lambda网页抓取功能可能是一个可行的选择,特别是对于规模较小或模块化程度更高的抓取任务。但是,对于大规模、长时间运行的抓取操作,使用亚马逊弹性计算云 (Amazon EC2) 实例或亚马逊弹性容器服务 (Amazon ECS) Service 的更传统的方法可能更合适。在为您的网络抓取需求选择合适的计算服务时,请务必仔细评估您的具体要求和权衡取舍。
为什么爬虫会收到 403 状态码?
HTTP 403 是一个 HTTP 状态码,表示禁止访问所请求的资源。如果请求正确,则服务器理解了请求并且不会满足请求。要防止 403 状态码,您可以执行以下操作:
-
限制您的抓取速度。
-
检查站点地图或 robots.txt 文件是否允许抓取工具访问网址。
-
尝试使用移动用户代理,而不是桌面用户代理。
如果以上方法都不起作用,则应尊重网站所有者的决定,不要抓取该页面。