跳转到主要内容

用于从HTML页面检测和提取列表数据的Python库

项目描述

https://travis-ci.org/scrapinghub/mdr.svg?branch=master

MDR是一个从HTML页面检测和提取列表数据的库。它基于从网页中查找和提取数据记录实现,但将相似度改为由基于部分树对齐的Web数据提取基于树编辑距离匹配的自动包装器自适应提出的树对齐。

要求

numpyscipy必须安装以构建此包。

用法

检测列表数据

MDR假设数据记录接近的元素具有最多的文本节点

[1]: import requests
[2]: from mdr.mdr import MDR
[3]: mdr = MDR()
[4]: r = requests.get('http://www.yelp.co.uk/biz/the-ledbury-london')
[5]: candidates, doc = mdr.list_candidates(r.text.encode('utf8'))
...

[8]: [doc.getpath(c) for c in candidates[:10]]
 ['/html/body/div[2]/div[3]/div[2]/div/div[1]/div[1]/div[2]/div[1]/div[2]/ul',
 '/html/body/div[2]/div[3]/div[2]/div/div[1]/div[2]',
 '/html/body/div[2]/div[3]/div[2]/div/div[1]/div[2]/div[2]',
 '/html/body/div[2]/div[3]/div[1]/div/div[4]/div[1]/div/div[1]/div/div[2]/div[1]/div[1]/div',
 '/html/body/div[2]/div[3]/div[1]/div/div[4]/div[2]/div/div[3]',
 '/html/body/div[2]/div[3]/div[1]/div/div[4]/div[1]/div/div[2]/ul/li[2]/div/div/ul',
 '/html/body/div[2]/div[3]/div[2]/div/div[1]/div[1]/div[2]/div[1]',
 '/html/body/div[2]/div[3]/div[2]/div/div[1]/div[2]/div[2]/div[1]/table/tbody',
 '/html/body/div[2]',
 '/html/body/div[2]/div[4]/div/div[1]']

提取数据记录

MDR可以通过在特定候选DOM树下使用树匹配来找到重复模式。然后,它将从所谓的“种子元素”到一个来自不同DOM树的匹配元素列表的映射。

与注释(可选)一起使用

您可以使用任何您喜欢的工具(例如scrapely)对种子记录进行注释,然后mdr将能够找到页面中的其他数据。

例如,您可以在这里找到这个演示页面。第一行的彩色数据是手动注释的,其余的是由MDR提取的。

作者

Terry Peng <pengtaoo@gmail.com>

许可证

MIT

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

mdr-0.0.1.tar.gz (49.3 kB 查看哈希)

上传于 来源

由以下支持