Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web crawler 爬虫的数据结构_Web Crawler_Web Scraping - Fatal编程技术网

Web crawler 爬虫的数据结构

Web crawler 爬虫的数据结构,web-crawler,web-scraping,Web Crawler,Web Scraping,大家好!我要写的网站爬虫,它从根地址开始,然后抓取每个找到的链接,只有内部链接。所以我面对这个问题: 爬虫程序必须从根开始,然后它应该解析网页根页面,然后获取所有链接。在获取链接时,它不应该对同一页面进行两次爬网。伙计们,有什么好的数据结构吗?或者我需要使用SQL或其他索引数据结构吗?您可能正在寻找的数据结构是 不过,对于爬虫程序,不需要它,因为从根开始,您可以维护一个已访问URL的列表,并且每次您要跟踪链接时,都要检查以前是否遇到过该链接。如果没有遇到,则将其添加到列表中,并遵循它 它不一定是

大家好!我要写的网站爬虫,它从根地址开始,然后抓取每个找到的链接,只有内部链接。所以我面对这个问题:
爬虫程序必须从根开始,然后它应该解析网页根页面,然后获取所有链接。在获取链接时,它不应该对同一页面进行两次爬网。伙计们,有什么好的数据结构吗?或者我需要使用SQL或其他索引数据结构吗?

您可能正在寻找的数据结构是

不过,对于爬虫程序,不需要它,因为从根开始,您可以维护一个已访问URL的列表,并且每次您要跟踪链接时,都要检查以前是否遇到过该链接。如果没有遇到,则将其添加到列表中,并遵循它

它不一定是一个列表,也就是数组,但它可以是一个或其他数据结构,有助于加快搜索速度

它也可以是SQL数据库或类似键值存储之类的东西。如果您使用类似的方法,那么所有的索引和查询将由数据库系统为您提供,您可以通过标准方法SQL、特殊API或其他方法与数据库系统进行通信


然而,这是最简单的部分,在爬行过程中还有一些更重要的事情需要考虑,也许最好首先检查您正在尝试做的事情是否可以用一个来完成。

您可能正在寻找的数据结构是

不过,对于爬虫程序,不需要它,因为从根开始,您可以维护一个已访问URL的列表,并且每次您要跟踪链接时,都要检查以前是否遇到过该链接。如果没有遇到,则将其添加到列表中,并遵循它

它不一定是一个列表,也就是数组,但它可以是一个或其他数据结构,有助于加快搜索速度

它也可以是SQL数据库或类似键值存储之类的东西。如果您使用类似的方法,那么所有的索引和查询将由数据库系统为您提供,您可以通过标准方法SQL、特殊API或其他方法与数据库系统进行通信


然而,这是最简单的部分,在爬行过程中还有一些更重要的事情需要考虑,也许最好先检查一下你想做的事情是否可以用一个工具来完成。

我建议在这里查看我的答案:和


我已经回答了你提出的很多问题。关键的一点是,爬虫程序使用URL Seen测试来有效地确定是否应该对链接进行爬网。URL Seen测试通常使用映射结构实现,该结构可以快速解析URL键。常用的解决方案是嵌入式数据库,如leveldb、berkeleydb和其他NOSQL解决方案。

我建议在这里查看我的答案:和

我已经回答了你提出的很多问题。关键的一点是,爬虫程序使用URL Seen测试来有效地确定是否应该对链接进行爬网。URL Seen测试通常使用映射结构实现,该结构可以快速解析URL键。常用的解决方案是嵌入式数据库,如leveldb、berkeleydb和其他NOSQL解决方案