【问题标题】:Exhaustive list of links for a specific domain特定域的详尽链接列表
【发布时间】:2018-04-08 10:41:37
【问题描述】:

我有一个函数可以解析给定 URL 的内容(通常是域的根)并返回指向该域中其他位置的所有链接的列表——它不包括外部链接,也不包括允许重复链接。

对于列表中已经存在的每个链接,然后对于将在下一个级别中找到的每个链接,等等,一次又一次地运行该函数的最简单方法是什么,无论多深,无论花费多长时间,直到为该特定域创建详尽、完整的链接列表?

该方法应该相当有效,并且不应该使用任何库或模块,甚至不应该使用列表推导。只是以最明显和最明确的方式进行的基本说明。此外,了解树的结构并不重要。只是一个链接列表。

谢谢!

【问题讨论】:

  • 请edit您的帖子包含语言标签,并包含您现有的构建您描述的功能的尝试。 (听起来你想要的算法是DFS)。
  • 嗨。谢谢你的评论。使用语言标签编辑的帖子。我还没有任何代码。我是一个初学者,我正在尝试弄清楚如何结合我已经拥有的解析功能来构建它。

标签: python-3.x list recursion hyperlink


【解决方案1】:

这是一个简单的算法

links_to_crawl = set()
crawled_links = set()

def function crawl(link):
    if (link not in crawled_links):
        new_links = findAllLinks (link)
        for new_link in new_links:
        #if new_link is not external:
            links_to_crawl.add(new_link)
        crawled_links.add(link)

for (link in links_to_crawl):
    crawl(link)

for (link in crawled_links):
    print crawled_links

【讨论】:

  • 嗨。感谢您的回答。如何与解析页面内容的现有函数结合使用?如果相关的话,我的函数不接受任何参数。我正在使用 Python 3。
  • 这是我的代码: url = urllib.request.urlopen('python.org') bytes = url.read() def scrap(): list_of_links = [] return list_of_links 如何将其与您的示例集成以使搜索变得详尽?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 2013-07-14
相关资源
最近更新 更多