跳转到主要内容

Python库,用于抓取数据源并创建可读的delta

项目描述

delta-scraper

处于早期开发阶段

PyPI Travis CI Documentation Status License

Python库,用于抓取数据源并创建可读的delta。

关于背景,请参阅 抓取飓风伊尔玛.

概念

此库允许您定义 抓取器,它们是知道如何从源(通常是Web API,但抓取器可以编写为针对HTML或其他格式进行操作)检索信息并作为JSON持久保存的对象。

当抓取器抓取新鲜信息时,它具有将那些数据与旧数据进行比较并使用差异创建可读消息的能力。

这些功能可以与git仓库结合使用,以创建提交日志,包含伴随机器可读diff的可读提交消息。

请参阅 disaster-scrapersdisaster-data 以查看一些此模式的应用示例。

基本用法

您可以通过继承 DeltaScraper 定义新的抓取器。以下是一个示例,它抓取FEMA避难所的列表。

class FemaShelters(DeltaScraper):
    url = "https://gis.fema.gov/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=FEMA:FEMANSSOpenShelters&maxFeatures=250&outputFormat=json"
    owner = "simonw"
    repo = "disaster-data"
    filepath = "fema/shelters.json"

    record_key = "SHELTER_ID"
    noun = "shelter"

    def fetch_data(self):
        data = requests.get(self.url, timeout=10).json()
        return [feature["properties"] for feature in data["features"]]

    def display_record(self, record):
        display = []
        display.append(
            "  {SHELTER_NAME} in {CITY}, {STATE} ({SHELTER_STATUS})".format(**record)
        )
        display.append(
            "    https://www.google.com/maps/search/{LATITUDE},{LONGITUDE}".format(
                **record
            )
        )
        display.append("    population = {TOTAL_POPULATION}".format(**record))
        display.append("")
        return "\n".join(display)

项目详情


下载文件

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

源分布

本版本没有提供源代码分发文件。请参阅关于生成分发存档的教程。

构建的分发

delta_scraper-0.1a1-py3-none-any.whl (9.2 kB 查看哈希值)

上传时间: Python 3

由以下组织支持