Json 自动网络爬虫
我正在写一个爬虫,它需要从许多网站获取数据。问题是每个网站都有不同的结构。如何轻松编写一个从(许多)不同网站下载(正确)数据的爬虫程序?如果一个网站的结构将改变,我需要重写爬虫,还是有其他方法 哪些逻辑和实现的工具可用于提高自动网络爬虫挖掘的数据质量(许多网站涉及不同的结构)Json 自动网络爬虫,json,web-crawler,Json,Web Crawler,我正在写一个爬虫,它需要从许多网站获取数据。问题是每个网站都有不同的结构。如何轻松编写一个从(许多)不同网站下载(正确)数据的爬虫程序?如果一个网站的结构将改变,我需要重写爬虫,还是有其他方法 哪些逻辑和实现的工具可用于提高自动网络爬虫挖掘的数据质量(许多网站涉及不同的结构) 谢谢大家! 我假设您希望以某种方式查询它,在这种情况下,您应该将数据存储在灵活的数据存储中。关系数据库不适合这种用途,因为它有一个严格的模式,但它允许您存储半结构化数据,而无需预先定义模式,但仍然提供了一种强大的查询语言
谢谢大家! 我假设您希望以某种方式查询它,在这种情况下,您应该将数据存储在灵活的数据存储中。关系数据库不适合这种用途,因为它有一个严格的模式,但它允许您存储半结构化数据,而无需预先定义模式,但仍然提供了一种强大的查询语言
在爬虫程序代码中表示数据的方式也是如此。不要将数据映射到预先定义了结构的类,而是使用可以在运行时更改的灵活数据结构。如果您使用的是Java,那么将数据反序列化为HashMaps。在其他语言中,这可能被称为字典或散列。如果你从网站上抓取数据,而这些网站实际上想让你这样做,那么他们很可能会提供某种Web服务,让你以结构化的方式查询他们的数据
否则,你就只能靠自己了,你甚至可能违反了他们的使用条款。如果网站没有提供API,那么你就没办法了,你必须为遇到的每种数据格式编写单独的提取模块。如果网站更改了格式,则必须更新格式模块。一个标准的做法是为您正在爬行的每个网站提供插件,并提供一个测试框架,对您已经收集的数据进行回归测试。当测试失败时,您知道出现了问题,您可以调查是否必须更新格式插件或是否存在其他问题
如果不知道您正在收集什么样的数据,就很难对提高所挖掘数据“质量”的方法进行假设。也许您可以了解网站是否允许您访问API等数据,如果允许,您可以直接将这种结构化数据用于网站。如果没有,你可能需要插件。或者,您可以求助于其他具有API访问权限的网络爬虫,比如,找到将其API访问到您自己的网络爬虫的方法