【问题标题】:How can I get a database of valid URLs for my search engine?如何获取搜索引擎的有效 URL 数据库?
【发布时间】:2013-03-19 02:33:00
【问题描述】:

我正在尝试为学校制作一个 Internet 搜索引擎,仅使用 C# 和 .NET 框架。我需要下载要编入索引的页面的 HTML 代码。

现在只需要一个有效 URL 列表。

由于我没有有效 URL 的数据库,我做了一个试错算法,它会生成一个字符串:

a, b, c.....
aa, ab, ac......
aaa, aab, aac......
aaaa, aaab, aaac......
aaaaa, aaaab, aaaac......

然后尝试与 .com、.net 或其他连接。这太低效了。

我需要一个包含有效 URL 的数据库。你知道我在哪里可以买到吗?

我不知道如何将它们直接从 DNS 中取出 - 这可能吗?

【问题讨论】:

    标签: c# .net dns search-engine


    【解决方案1】:

    您可以构建自己的。大多数搜索引擎会抓取页面并跟踪指向其他页面的链接。

    你从一个已知的列表开始(它不必很大)然后:

    1. 访问列表中的页面
    2. 在这些页面上查找链接
    3. 将这些链接添加到您的列表中
    4. 转到 1

    关于使用DNS;它不是为查询 URL 而设计的,只用于查询主机名。而且,据我所知,除非您自己管理服务器,否则您无法从 DNS 服务器获取每个主机名的列表。

    【讨论】:

    • 几个月来我得到的最明智的答案!这似乎是最好的选择。非常感谢您在这里的意见!
    • +1 为简单起见。此外,您可以编写一个算法来尝试从公共 IP 地址获取 http。它们的数量是有限的(尽管很多),并且并非所有这些都将托管 http 内容,但是,这是另一种在互联网上搜索新服务器以添加到数据库的方法。
    • @Cypher:尝试从公共 IP 地址获取 HTTP 并不是非常可靠。如果主机标头不正确,许多(也许是大多数?)站点将不会响应。在那些这样做的情况下,您通常会得到重复的内容:一组来自站点的人类可读 URL 的内容,以及一组来自 IP 地址的重复内容。我多年运行大型爬虫的经验是,原始 IP 提供的优质内容很少。发布值得抓取的内容的人绝大多数都拥有域名。
    • @JimMischel:我完全同意。还有更多可以/应该做的事情,但鉴于我的评论只是一个评论,扩展细节不是我的意图。整体概念就在那里。
    猜你喜欢
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多