2011-07-27 27 views
1

我有这个问题,我需要刮许多不同的HTML数据源,每个数据源包含一个有很多行的表,例如国家名称,电话号码,每分钟的价格。智能自动刮屏

我想建立一些半自动刮刀将尝试..

  1. 自动找到右表中的HTML页面, - 可能是在寻找一些样本数据中的文本,并试图找到同时包含

  2. 提取的行 公共HTML元素 - 通过看上述两个元件和选择相同PATTEN

  3. 识别哪一列包含什么 - 通过使用一些模糊算法来最好地猜测哪一列是什么。

  4. 将其导出到一些python /其他列表 - 清理everytihng。

这看起来不错的设计吗?如果你用python编程,你会选择什么工具?

+0

有没有可以用来代替刮的API? – amelvin

回答

0

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

使用XPath找到合适的表格非常方便。

4

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

,你会选择做它,如果你在Python程序用什么工具号?

美丽的汤

自动查找在HTML页面中右表, - 可能通过搜索文本一些示例数据,并试图找到同时包含

常见的HTML元素

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

提取的行 - 通过看上述两个元件和选择相同PATTEN

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

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

一个人可以轻而易举地做到这一点。

将其导出到一些python /其他列表 - 清理everytihng。

几乎是个好主意。

一个人选择正确的XPath到表中。一个人写一小段代码将列名映射到一个namedtuple。鉴于这些参数,Python脚本可以获取表格,映射数据并生成一些有用的输出。

为什么包括一个人?

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

在花了最近三年的时间来做这件事之后,我非常肯定,模糊逻辑和神奇的“试图找到”和“选择相同的模式”不是一个好主意,并且不起作用。

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

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

+3

+1“糟糕的错误”。唯一比刮取html更糟糕的是刮取句法不正确和任意写入的html。 –