智能自动刮痧

时间:2011-07-27 22:35:23

标签: python

我遇到了这个问题,我需要抓取大量不同的HTML数据源,每个数据源都包含一个包含大量行的表格,例如国家/地区名称,电话号码,每分钟价格。

我想建立一些半自动刮刀,试图......

  1. 自动在HTML页面中找到正确的表格, - 可能通过在文本中搜索某些示例数据并尝试查找包含

  2. 的公共HTML元素
  3. 提取行 - 通过查看上面的两个元素并选择相同的模式

  4. 确定哪个列包含哪些内容 - 通过使用一些模糊算法来最好地猜测哪个列是什么。

  5. 将其导出到某个python / other列表 - 清洁每一件事。

  6. 这看起来像一个好的设计吗?如果你在python中编程,你会选择使用哪些工具?

2 个答案:

答案 0 :(得分:4)

  

这看起来像一个好的设计吗?

没有

  

如果你在python中编程,你会选择使用哪些工具?

美丽的汤

  

自动在HTML页面中找到正确的表格, - 可能是通过在文本中搜索一些示例数据并尝试查找包含两者的公共HTML元素

糟糕的主意。更好的想法是编写一个简短的脚本来查找所有表,将表和XPath转储到表中。一个人查看表并将XPath复制到脚本中。

  

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

糟糕的主意。更好的想法是编写一个简短的脚本来查找所有表,使用标题转储表。一个人查看该表并配置一小段Python代码,以将表列映射到一个named元组中的数据元素。

  

确定哪个列包含什么 - 通过使用一些模糊算法来最好地猜测哪个列是什么。

一个人可以做到这一点。

  

将其导出到某个python /其他列表 - 清理everytihng。

几乎是一个好主意。

一个人选择正确的XPath到桌面。一个人写一小段代码来将列名映射到一个namedtuple。给定这些参数,然后Python脚本可以获取表,映射数据并产生一些有用的输出。

为什么要包括一个人?

因为网页充满了臭名昭着的错误。

在过去三年这样做之后,我很确定模糊逻辑和神奇的“试图找到”和“选择相同的模式”不是一个好主意,也不行。

编写一个简单的脚本来创建页面的“数据配置文件”会更容易。

编写简单的脚本更容易读取配置文件并进行处理。

答案 1 :(得分:0)

我看不到更好的解决方案。

使用XPath查找正确的表格很方便。