Skip to main content

Python client for assemblee-nationale.fr website

Project description

ANpy: Scrape painlessly Assemblée Nationale website

PyPI version Build Status Coverage Status

ANpy is a python library for easily scraping data from http://assemblee-nationale.fr website

Forget the ugly html, just get data:

>>> 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': [...]}]

Supported Features

ANpy currently provides the following features:

  • Amendement parsing
  • Amendement search
  • Question parsing
  • Question search
  • Dossier parsing (two differents formats)
  • Scrutin parsing

ANpy supports Python 3.5.

Install :

pip install anpy

Documentation

Documentation is available at http://anpy.readthedocs.io/en/latest

CLI

A script anpy-cli is installed with the package, it provides the following commands :

Show an amendement given its url

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

Show amendements summaries after a given date

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

Print amendements order for a given id_dossier and id_examen

anpy-cli show_amendements_order 33299 --id-examen 4073

Show a question

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

Show a law project (dossier législatif)

Format is like senapy and the Open Data of lafabriquedelaloi.fr

There's more work done on this parser to make it work across many cases

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"
            },
...

Features:

  • Merging the law project across legislatures
  • Parse from Open Data when available or fallback to scraping HTML
  • Returns an array of law projects since a page can contains many law projects (ex: organic + non-organic)

You can also parse many of them by giving a list of urls:

anpy-cli doslegs_urls | anpy-cli parse_many an_doslegs/

Show a law project (with a format is similar to the AN Open Data)

This parser is still a work-in-progress

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"
                },
                {
...

Find all the dossier urls

anpy-cli doslegs_urls

Show a scrutin

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

Running the tests

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anpy-0.2.1.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

anpy-0.2.1-py2.py3-none-any.whl (27.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file anpy-0.2.1.tar.gz.

File metadata

  • Download URL: anpy-0.2.1.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9

File hashes

Hashes for anpy-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c7e2bcb45e0dd0192bff190297bb95042d1193d2e2ebba44367f0e7528c11b39
MD5 0d200c1d79328f52849a405df970fe9a
BLAKE2b-256 25a1ad399d963f865408f72867da908d6265050fb97849eea170011e9c91b22c

See more details on using hashes here.

File details

Details for the file anpy-0.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: anpy-0.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9

File hashes

Hashes for anpy-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4139bfd47a5a5a1bf6f80d20b04eecc35c237a3eeaee33e8069bcd809b11356a
MD5 415e8321f94a9873b9472f2e1889e878
BLAKE2b-256 16a837746c5beb77c06902372662d20f0ba743c8aee72ebdba2c2295eeae7176

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page