一个基类,用于为统计数据构建web刮削器。
statscraper的Python项目详细描述
statscrapper是一个基本库,用于构建用于统计数据的web scraper,带有用于(主要是瑞典)统计数据的helper本体。包括一套现成的刮刀。
对于用户
你可以用脚踏车作为下一个铲运机的基础,或者尝试任何一个铲运机。与statscaper一起提供了一个统一的刮削接口,以及一些有用的帮助刮刀作者的方法。完整文档:ReadTheDocs
更新和讨论:Facebook
作者是Journalism++ Stockholm,罗宾·林德堡。
安装
pip install statscraper
使用刮刀
scraper就像“游标”一样在数据集和数据集集合的层次结构中移动。集合和数据集被称为“项”。
┏━ Collection ━━━ Collection ━┳━ Dataset ROOT ━╋━ Collection ━┳━ Dataset ┣━ Dataset ┗━ Collection ┣━ Dataset ┗━ Dataset ┗━ Dataset ╰─────────────────────────┬───────────────────────╯ items
这里有一个简单的例子,一个scraper只返回一个数据集:每天在hornborgarsjón发现的起重机数量是从Länsstyrelsen i Västra Götalands län刮来的。
>>>fromstatscraper.scrapersimportCranes>>>scraper=Cranes()>>>scraper.items# List available datasets[<Dataset:Numberofcranes>]>>>dataset=scraper["Number of cranes"]>>>dataset.dimensions[<Dimension:date(Dayofthemonth)>,<Dimension:month>,<Dimension:year>]>>>row=dataset.data[0]# first row in this dataset>>>row<Result:7(value)>>>>row.dict{'value':'7',u'date':u'7',u'month':u'march',u'year':u'2015'}>>>df=dataset.data.pandas# get this dataset as a Pandas dataframe
建造刮刀
铲运机是通过扩展一个基础铲运机,或降低。您需要提供一个方法来列出数据集或数据集集合,并获取数据。
statscrapper是为统计数据而构建的,这意味着当您正在抓取的数据可以在每一行用一个数值组织时,它最有用:
city | year | value |
---|---|---|
Voi | 2009 | 45483 |
Kabarnet | 2006 | 10191 |
Taveta | 2009 | 67505 |
刮刀可以覆盖这些方法:
- 获取项列表(项)以在当前光标位置生成集合或数据集
- 获取数据(数据集)从当前选定的数据集生成行
- 获取维度(数据集)以生成当前选定数据集可用的维度
- 获取允许的值(维度)以生成维度的允许值
许多挂钩可用于更先进的刮板。这些是通过在方法上添加on decorator来调用的:
@BaseScraper.on("up")defmy_method(self):# Do something when the user moves up one level
对于开发人员
这些说明适用于开发basescraper的开发人员。有关使用基础刮刀开发刮刀的说明,请参见上文。
下载
git clone https://github.com/jplusplus/skrejperpark python setup.py install
测试
python setup.py test
从根目录运行python setup.py test。在用nosetests运行测试之前,这将安装测试所需的所有内容。
变更日志
- 1.0.7
- 从已由BaseScraper处理的SCBScraper中删除逻辑
- 1.0.6
- 新增方言:skatteverket(两位/四位县/市代码)
- 为道路类别添加了数据类型
- 使scb scraper将“区域”也视为区域
- 1.0.5条 -为smhi scraper添加了电台键
- 1.0.4条 -增加SMHI刮刀
- 1.0.3条 -重新添加在第一个版本中意外遗漏的演示刮刀
- 1.0.0条 -首次发布
- 1.0.0.dev2
- 执行翻译
- 添加dataset.fetch_next()作为结果生成器
- 1.0.0.dev1
- 语义版本控制从这里开始
- 实现数据类型和方言
- 0.0.2
- 添加了一些演示刮板
- 现在,当访问数据集时,光标会移动
- 移动光标的重命名方法:move_up(),move_to()
- 添加测试
- 添加了数据类型子树
- 0.0.1分 -第一个版本