【问题标题】:How do I use crawler if I know the target web-page and file extension but not knowing the file name?如果我知道目标网页和文件扩展名但不知道文件名,如何使用爬虫?
【发布时间】:2017-01-04 14:54:09
【问题描述】:

我在这里有一个需要抓取的网页。它看起来像这样:

www.abc.com/a/b/,

我知道在/b 目录下,我需要一些带有.html 扩展名的文件。我知道我可以访问那些.html 文件,但我无权访问www.abc.com/a/b/。那么,在不知道.html 文件名的情况下,如何爬取那些.html 页面呢?

【问题讨论】:

  • Afaik 这不是爬虫的工作方式。除非 Web 服务器在引用 URL 中目录的根目录时提供目录列表,否则您实际上无法知道它在该目录下有哪些 html“文件”。首先,尝试使用根 URL www.abc.com/a/b/ 并查看为您提供的服务,如果您获得 html 文档(“索引”页面或目录列表),请点击文档内的链接(例如,在 标记中)。
  • 403禁止
  • 然后您可以尝试引用公共目录索引(首先我会从“index.html”或“index.php”开始)。 (例如www.abc.com/a/b/index.html)。

标签: python html nginx web-crawler


【解决方案1】:

如果您不知道如何访问网页,则无法抓取网页。

如果我理解您的意思,您希望访问在索引页不可访问的目录中可访问的页面(因为您会得到 403)。

在你放弃之前,你可以尝试以下方法:

  • 检查主要搜索引擎是否链接到您似乎知道的目录中的页面(因为如果您知道您可以访问这些 .html,那么您可能至少知道其中一个)。包含该链接的页面也可能包含指向该目录内文件的其他链接。例如,在 google 中,使用 link: 运算符:

link:www.abc.com/a/b/the_file_you_know_exists

  • 检查网站是否在主要搜索引擎中被索引。例如,在 google 中,使用 site: 运算符:

site:www.abc.com/a/b/

  • 检查网站是否存档在archive.org:

http://web.archive.org/web/*/www.abc.com/a/b/

  • 使用 memento 检查您是否可以在其他网络档案中找到它:

http://timetravel.mementoweb.org/reconstruct/*/www.abc.com/a/b/

  • 尝试查找其他可能的文件名,例如 index1.html、index_old.html、index.html_old、contact.html 等。您可以创建一长串可能的文件名来尝试,但这也取决于您对网站的了解。

这可能会为您提供该网站上仍然存在或过去存在的可能页面。

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    相关资源
    最近更新 更多