跳转到主要内容

法国国民议会网站的Python客户端

项目描述

ANpy:轻松抓取国民议会网站数据

PyPI version Build Status Coverage Status

ANpy是一个Python库,用于轻松从http://assemblee-nationale.fr网站抓取数据

忘记丑陋的HTML,只需获取数据

>>> from anpy.dossier import Dossier
>>> url = 'http://www.assemblee-nationale.fr/14/dossiers/republique_numerique.asp'
>>> dossier = Dossier.download_and_build(url)
>>> dossier.title
'Economie : pour une République numérique'
>>> dossier.legislature
14
>>> r.procedure
'PPL'
>>> r.senat_url
'http://www.senat.fr/dossier-legislatif/pjl15-325.html'
>>> r.steps
[{'type': 'AN_PREMIERE_LECTURE', 'acts': [...]}]

支持的功能

ANpy目前提供以下功能

  • 修正案解析
  • 修正案搜索
  • 问题解析
  • 问题搜索
  • 案卷解析(两种不同的格式)
  • 审查解析

ANpy支持Python 3.5。

安装

pip install anpy

文档

文档可在以下网址找到:http://anpy.readthedocs.io/en/latest

命令行界面(CLI)

该软件包中包含了一个名为anpy-cli的脚本,它提供了以下命令

根据URL显示修正案

anpy-cli show_amendement http://www.assemblee-nationale.fr/14/amendements/1847/CION-DVP/CD266.asp

显示给定日期之后的修正案摘要

anpy-cli show_amendements_summary --start-date 2014-06-01

打印给定id_dossier和id_examen的修正案顺序

anpy-cli show_amendements_order 33299 --id-examen 4073

显示一个问题

anpy-cli show_question http://questions.assemblee-nationale.fr/q14/14-73499QE.htm

显示一个法律项目(立法文件)

格式类似于senapy以及lafabriquedelaloi.fr的开放数据

对这种解析器进行了更多的工作,使其能够在许多情况下正常工作

anpy-cli parse http://www.assemblee-nationale.fr/14/dossiers/sante.asp
[
    {
        "assemblee_id": "14-sante",
        "assemblee_legislature": 14,
        "assemblee_slug": "sante",
        "beginning": "2014-10-15",
        "long_title": "Questions sociales et santé : modernisation de notre système de santé",
        "steps": [
            {
                "date": "2014-10-15",
                "institution": "assemblee",
                "source_url": "http://www.assemblee-nationale.fr/14/projets/pl2302.asp",
                "stage": "1ère lecture",
                "step": "depot"
            },
            {
                "date": "2015-03-20",
                "institution": "assemblee",
                "source_url": "http://www.assemblee-nationale.fr/14/ta-commission/r2673-a0.asp",
                "stage": "1ère lecture",
                "step": "commission"
            },
            {
                "date": "2015-04-14",
                "institution": "assemblee",
                "source_url": "http://www.assemblee-nationale.fr/14/ta/ta0505.asp",
                "stage": "1ère lecture",
                "step": "hemicycle"
            },
...

功能

  • 合并跨立法期的法律项目
  • 当可用时从开放数据解析,或者回退到抓取HTML
  • 返回一个法律项目数组,因为一个页面可以包含多个法律项目(例如:有机和无机)

您也可以通过提供URL列表来解析多个法律项目

anpy-cli doslegs_urls | anpy-cli parse_many an_doslegs/

显示一个法律项目(格式类似于AN开放数据)

这个解析器仍在开发中

anpy-cli show_dossier http://www.assemblee-nationale.fr/14/dossiers/sante.asp
{
    "legislature": "14",
    "procedure": "PJL",
    "senat_url": "http://www.senat.fr/dossier-legislatif/pjl14-406.html",
    "steps": [
        {
            "acts": [
                {
                    "date": "2014-10-15T00:00:00",
                    "type": "DEPOT_INITIATIVE",
                    "url": "http://www.assemblee-nationale.fr/14/projets/pl2302.asp"
                },
                {
                    "type": "ETUDE_IMPACT",
                    "url": "http://www.assemblee-nationale.fr/14/projets/pl2302-ei.asp"
                },
                {
                    "date": "2015-03-16T00:00:00",
                    "type": "PROCEDURE_ACCELEREE"
                },
                {
                    "date": "2015-03-20T00:00:00",
                    "type": "DEPOT_RAPPORT",
                    "url": "http://www.assemblee-nationale.fr/14/rapports/r2673.asp"
                },
                {
                    "date": "2015-03-24T00:00:00",
                    "type": "TEXTE_COMMISSION",
                    "url": "http://www.assemblee-nationale.fr/14/ta-commission/r2673-a0.asp"
                },
                {
                    "date": "2015-02-11T00:00:00",
                    "type": "DEPOT_RAPPORT",
                    "url": "http://www.assemblee-nationale.fr/14/rap-info/i2581.asp"
                },
                {
...

查找所有文件URL

anpy-cli doslegs_urls

显示一个审查

anpy-cli show_scrutin http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/14/(num)/1212

运行测试

pip install -U -r test_requirements.txt
pip install -e .
pycodestyle --exclude=tests,docs .
flake8 --exclude=tests,docs .
py.test --cov=anpy

项目详情


下载文件

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

源代码分发

anpy-0.2.1.tar.gz (25.6 KB 查看哈希值

上传时间: 源代码

构建分发

anpy-0.2.1-py2.py3-none-any.whl (27.5 KB 查看哈希值

上传时间: Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面