【问题标题】:What's the best method to capture URLs?捕获 URL 的最佳方法是什么?
【发布时间】:2009-11-24 02:30:11
【问题描述】:

我正在尝试寻找收集 URL 的最佳方法,我可以创建自己的小型爬虫,但我的服务器需要数十年才能爬取整个 Internet,而且所需的带宽会很大。另一个想法是使用 Google 的 Search API 或 Yahoo 的 Search API,但这并不是一个很好的解决方案,因为它需要在我得到结果之前执行搜索。

其他想法包括询问 DNS 服务器和请求 URL 列表,但 DNS 服务器可以限制/限制我的请求,甚至一起禁止我。目前我对查询 DNS 服务器的知识非常有限,所以我不知道这是否是最好的方法。

我只想要一个庞大的 URL 列表,但我想在将来构建此列表时不会碰壁。有什么想法吗?

我开始这个项目是为了学习 Python,但这与问题无关。

【问题讨论】:

  • 很有趣的问题——你想要大量的免费数据。您预计未来会有什么样的“砖墙”?
  • 另外,您应该清楚 URL 的含义。例如,一个 URL 是stackoverflow.com/questions/1787414/…。我预计您或其他任何人都不会在 Web 上发现 99% 的现有 URL。您是说域名吗?
  • @S.Lott - 砖墙指的是无法真正让我获得世界上所有可用 URL 的方法
  • @Dathan 很好,我不想要每个页面,我想要每个站点,所以“域名”更合适

标签: url capture web-crawler google-search-api


【解决方案1】:
$ wget http://s3.amazonaws.com/alexa-static/top-1m.csv.zip

【讨论】:

  • 虽然这是一个可观的数量,但它并没有提供实现我 99% 的 Internet URL 的最终目标的潜力。不过非常感谢!
【解决方案2】:

您可以在Verisign注册以访问整个 .com 和 .net 区域文件

我没有阅读使用条款的细则,也不知道它的成本是多少(如果有的话)。但是,这将为您提供一个巨大的活动域列表以用作 URL。

【讨论】:

  • 太棒了,这对 .com、.net 和 .name 有帮助。我将不得不研究其他国家。
【解决方案3】:

质量有多大?一个好的起点是http://www.alexa.com/topsites。他们提供前 1,000,000 个网站的下载(通过他们的排名机制)。然后,您可以通过转到 Google 并为列表中的每个 url 抓取查询 link: url 的结果来扩展此列表。

【讨论】:

  • 我喜欢你的想法,但这并不能保证所有可用的 URL。
  • 贪婪,很多吗?没有任何东西可以保证每个可用的 URL。我在我的个人网站上有私人 URL,这些 URL 没有被“网络”上的任何网站链接到;您将如何发现这些 URL?这只是一个很好的起点 - 您需要运用一些独创性和肘部润滑脂从那里建立您的收藏。
  • @Dathan 是的,但是很多人已经完成了这项工作(比如谷歌),那么为什么要重新发明轮子呢?如果没有合适的解决方案,那么我可能不得不用自己的机器人抓取互联网。
  • 我必须创建一个机器人来抓取 Internet,并且我还要求我找到的每个 DNS 服务器提供站点列表(如果允许)。我的 URL 集合正在慢慢建立,我可能必须创建一个数据库服务器集群才能获得一个好的示例。
【解决方案4】:

现在的现代术语是 URI 和 URN,URL 是缩小/过时的。我会扫描在一个文件中包含许多地址的sitemap 文件,并研究定义 URI 正则表达式的经典文本 spiders, wanderes, brokers and botsRFC 3305(附录 b. p 50)

【讨论】:

  • 检查你的定义,毕竟我是在关注网站。 ;) 我研究过爬行,但我没有足够的资源或带宽来完成一项严肃的工作。
  • 来自 IBM --------- 统一资源标识符 (URI) 用于标识 Web 上的内容的唯一地址,例如文本页面、视频或声音剪辑、静止图像或动画图像或程序。最常见的 URI 形式是网页地址,它是称为统一资源定位器 (URL) 的 URI 的特定形式或子集。 URI 通常描述如何访问资源、包含资源的计算机以及计算机上的资源名称(文件名)。 .... 我不想要 FTP、SMTP 等 ....
猜你喜欢
  • 2019-08-20
  • 2012-09-21
  • 2012-10-10
  • 2012-02-25
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多