1

我正在编写一个需要从许多网站获取数据的爬虫。问题是每个网站都有不同的结构。如何轻松编写从(许多)不同网站(正确)下载数据的爬虫?如果网站结构发生变化,我需要重写爬虫,还是有其他方法?

可以使用哪些逻辑和实施的工具来提高自动网络爬虫(许多网站涉及不同的结构)挖掘的数据质量?

谢谢你!

4

4 回答 4

0

我假设您想以某种方式查询它,在这种情况下,您应该将数据存储在灵活的数据存储中。关系数据库不适合用于目的,因为它具有严格的模式,但是像mongodb这样可以让您存储半结构化数据而无需预先定义模式,但仍然提供强大的查询语言。

在爬虫代码中表示数据的方式也是如此。不要将数据映射到预先定义结构的类,而是使用可以在运行时更改的灵活数据结构。如果您使用的是 Java,则将数据反序列化为 HashMap。在其他语言中,这可能被称为字典或哈希。

于 2012-07-19T21:22:23.743 回答
0

如果您从实际上希望允许您这样做的网站上抓取数据,那么他们很可能会提供某种网络服务,以允许您以结构化的方式查询他们的数据。

否则,您只能靠自己,甚至可能违反他们的使用条款。

于 2012-07-19T21:29:52.227 回答
0

如果这些网站没有提供 API,那么你就冷了,你必须为遇到的每种数据格式编写单独的提取模块。如果网站改变了格式,那么你必须更新你的格式模块。一个标准的做法是为您正在抓取的每个网站都安装插件,并拥有一个测试框架,该框架使用您已经收集的数据进行回归测试。当测试失败时,您就知道出了问题,您可以调查是否必须更新格式插件或是否存在其他问题。

在不知道您正在收集什么样的数据的情况下,很难尝试假设如何提高所挖掘数据的“质量”。

于 2012-07-20T21:07:23.283 回答
0

Maybe you could find out whether the website allows you to access the data like API, if so, you could use this kind of structured data to your website directly. If not, you may need plugins for that. Or you could turn to other web crawlers with API access like Octoparse, to find the way to access their API to your own web crawler.

于 2017-04-20T08:30:23.003 回答