【问题标题】:Reading robots.txt file?读取 robots.txt 文件?
【发布时间】:2020-02-28 18:21:49
【问题描述】:

我正在尝试抓取一个网站,他们的 robots.txt 文件是这样写的:

(其中 zoeksuggestie 是英文搜索建议)

User-agent: *

# Miscellaneous
Disallow: /mijn/
Disallow: /*/print/*
Disallow: /koop/zoeksuggestie/
Disallow: /huur/zoeksuggestie/
Disallow: /nieuwbouw/zoeksuggestie/
Disallow: /recreatie/zoeksuggestie/
Disallow: /europe/zoeksuggestie/
Disallow: /*/brochure/download/
Disallow: */uitgebreid-zoeken/*
Disallow: /makelaars/*/woningaanbod/*
Disallow: /zoekwidget/*
Allow: /zoekwidget/$
Disallow: /relatedobjects
Disallow: /mijn/huis/wonen/toevoegen/
Disallow: /*/woningrapport/

# Prevent bots from indexing combinations of locations
Disallow: /koop/*,*
Disallow: /huur/*,*
Disallow: /nieuwbouw/*,*
Disallow: /recreatie/*,*
Disallow: /europe/*,*

这是否意味着我无法抓取 /koop/*,* 的任何链接? *,*是什么意思?我真的需要从这个网站获取一个项目的数据,但我一直被scrapy/beautiful soup阻止。

【问题讨论】:

标签: web-scraping scrapy robots.txt


【解决方案1】:

robots.txt 文件是“机器人排除标准”的一部分,每当机器人访问网站时,它们都会检查 robots.txt 文件以查看它们无法访问的内容。 Google 使用它来不索引或至少公开显示与 robots.txt 文件中的 URL 匹配的 URL。

但该文件并非必须遵守 robots.txt。 * 是一个通配符,所以/koop/*,* 将匹配 /koop/[wildcard],[wildcard] 的任何内容。 这是 robots.txt https://geoffkenyon.com/how-to-use-wildcards-robots-txt/ 中通配符的精彩指南

你提到scrapy不工作,那是因为scrapy默认遵循robots.txt。这可以在设置中禁用,该问题已在此处回答:getting Forbidden by robots.txt: scrapy

【讨论】:

  • 这是否意味着像 /koop/example1/example2/example3 这样的链接不会被阻止?
  • 基于不会被阻止的 robots.txt。我确实注意到这个 robots.txt 很可能是一个荷兰房屋搜索网站,我不会在这里命名。每当找不到koop/ 之后的路径时,它就会将/ 替换为,,从而导致站点被阻止。您可以使用https://technicalseo.com/tools/robots-txt/ 之类的 robots.txt 测试器来测试 URL 是否会被阻止
  • 非常感谢!你能看看我的抓取代码,让我知道我可以使用哪些资源来改进它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
相关资源
最近更新 更多