Skip to main content

A Python tool to extract information from VoxCharta My Voting Records HTML

Project description

voxcharta-my-voting-record

PyPI - Python Version PyPI License Code style: black

PyPI - Downloads Hits


Overview

This pure Python tool web scrapes data from Vox Charta's My Voting Records page. It provides the data contents in two forms, a non-relational JSON file and relational CSV file.

This software was driven by the need to archive such records since Vox Charta will be sunsetted on December 31, 2020.

Getting Started

These instructions will have the code running.

Requirements

This software is tested with 3.10.2, the latest version available during recent development. In principle it should work with >=3.7. It requires BeautifulSoup4 and pandas.

Installation Instructions

Python and setting up an environment

Using your preferred Python environment manager (conda, virtualenv, venv), I recommend create a separate environment to avoid any possible conflicts with existing software that you used. Below are conda instructions

$ (sudo) conda create -n voxcharta python=3.10.2

Installation is straightforward:

$ conda activate voxcharta
$ (sudo) pip install voxcharta-my-voting-record

Or from source:

$ conda activate voxcharta
$ git clone https://github.com/astrochun/voxcharta-my-voting-record.git
$ cd voxcharta-my-voting-record
$ (sudo) pip install .

For editable/development installation, execute (sudo) pip install -e . This is preferred over the python setup.py method as certain dependencies (numpy) will fail to install during the build process.

Vox Charta Data Export

Before using this software, you will want to export your Vox Charta My Voting Records page. Here are the steps. These are based on Chrome, so differences may occur for other browsers:

  1. Login to Vox Charta before you can't!
  2. Click on "Tools > My Voting Records"
  3. After the page fully loads (this can take some time), click "File > Save Page As"
  4. Change filename to "myvotingrecords"
  5. For format, select "Webpage, Complete"

Execution

The primary script to execute is vox_run

Execution requires only one argument, which is the full path to the HTML file.

$ vox_run /full/path/to/myvotingrecords.htm

This is all possible using Typer. The script provides rich-formatted log messages to the terminal using Rich.

All contents are stored in /full/path/to unless outfile_prefix is specified with a different path. Thus, without specifying outfile_prefix the above execution will generate:

  • JSON: /full/path/to/myvotingrecords.json
  • CSV: /full/path/to/myvotingrecords.csv

A log file is constructed: /full/path/to/vox_run.YYYY-MM-DD.log

Versioning

We use SemVer for versioning. For the versions available, see the releases on this repository.

Authors

License

This project is licensed under the GNU GPLv3 License - see the LICENSE file for details.

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

voxcharta-my-voting-record-0.4.1.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

voxcharta_my_voting_record-0.4.1-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file voxcharta-my-voting-record-0.4.1.tar.gz.

File metadata

File hashes

Hashes for voxcharta-my-voting-record-0.4.1.tar.gz
Algorithm Hash digest
SHA256 03e4700f006ee6cc6584fe6389c9406cdf5f9ae19eeaebefee432a1200beb271
MD5 19ddce2116de11ae898147fbbaa4d41b
BLAKE2b-256 806af6c874c96c901bff24fc1b5969fc5b2ccee8f75d12c27ae9191b7e5d6c02

See more details on using hashes here.

File details

Details for the file voxcharta_my_voting_record-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for voxcharta_my_voting_record-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 64ae75f40dada66ed501079a5aea171136d5d6ce67618bbf31e943d06a2d7c46
MD5 5452fa2f905e4c7a35dd8ddf94dcd2e0
BLAKE2b-256 a4083937b0dee28fd232ab6345a4f50ffa66b49330098e100ef08973e68fdab6

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