一个基类,用于为统计数据构建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是为统计数据而构建的,这意味着当您正在抓取的数据可以在每一行用一个数值组织时,它最有用:

cityyearvalue
Voi200945483
Kabarnet200610191
Taveta200967505

刮刀可以覆盖这些方法:

  • 获取项列表(项)以在当前光标位置生成集合或数据集
  • 获取数据(数据集)从当前选定的数据集生成行
  • 获取维度(数据集)以生成当前选定数据集可用的维度
  • 获取允许的值(维度)以生成维度的允许值

许多挂钩可用于更先进的刮板。这些是通过在方法上添加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分 -第一个版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Admob不使用webview   Java Wicket表单:序列化对象类“myClassName”时出错   java googledriveapi更新文件与我的帐户管理员   java简单框架未知xml标记解析   java如何使用主类和用户获取Spark应用程序ID   java如何更改自定义属性的值?   java有没有办法在jMock中找到未使用的期望值?   gradle运行任务的java文档?   java通过使用数组来存储文本文件的行,通过覆盖来删除文本文件中的行   用于表达式语言注入的java利用负载   java IDEStyle程序运行   java在运行时启用/禁用Springws   爪哇芦苇。formatNumber NullPointException   java为什么我的代码无法检测两个动态实体之间的碰撞?