智能自动抓取

1 投票
2 回答
1235 浏览
提问于 2025-04-16 22:24

我遇到了一个问题,我需要从很多不同的HTML数据源中提取数据,每个数据源里都有一个包含很多行的表格,比如国家名称、电话号码、每分钟的价格。

我想建立一个半自动的抓取工具,它会尝试:

  1. 自动找到HTML页面中正确的表格, -- 可能是通过搜索一些示例数据的文本,来找到包含这些数据的共同HTML元素。

  2. 提取表格的行, -- 通过查看上面提到的两个元素,选择相同的模式。

  3. 识别每一列包含的内容, -- 使用一些模糊算法来猜测每一列代表的是什么。

  4. 把数据导出到Python或其他列表中, -- 并清理所有内容。

这样的设计看起来好吗?如果你用Python编程,你会选择什么工具来实现呢?

2 个回答

0

我找不到更好的解决办法。

XPath来找到合适的表格是很方便的。

4

这个设计看起来好吗?

不好。

如果你用Python编程,你会选择什么工具来做这个?

Beautiful Soup。

自动找到HTML页面中正确的表格,可能是通过搜索一些示例数据的文本,试图找到包含这两者的共同HTML元素。

这个主意不好。更好的办法是写一个小脚本,找到所有的表格,提取表格和表格的XPath。然后让人查看这个表格,把XPath复制到脚本里。

提取行——通过查看上面两个元素并选择相同的模式。

这个主意也不好。更好的办法是写一个小脚本,找到所有的表格,提取带有标题的表格。然后让人查看这个表格,配置一小段Python代码,把表格的列映射到一个命名元组中的数据元素。

识别哪一列包含什么——使用一些模糊算法来猜测哪一列是什么。

这个人可以很轻松地做到。

把它导出到某个Python或其他列表中——清理所有内容。

这个主意差不多不错。

一个人选择正确的XPath来找到表格。然后写一小段代码,把列名映射到一个命名元组。给定这些参数,Python脚本就可以获取表格,映射数据并生成一些有用的输出。

为什么要让人参与?

因为网页上常常充满了各种错误。

经过三年的实践,我很确定模糊逻辑和“尝试寻找”以及“选择相同模式”这些方法并不好,也不管用。

写一个简单的脚本来创建页面的“数据概况”要容易得多。

写一个简单的脚本,读取配置文件并进行处理,也要容易得多。

撰写回答