<h1 align="center">
<img alt="Goodreads Icon" width="200" src="https://raw.githubusercontent.com/YashTotale/goodreads-user-scraper/main/static/goodreads-icon.png"></img>
<p></p>
<b>Goodreads User Scraper</b>
</h1>
<p align="center"><strong>Scrape Goodreads User Data: Profile, Book Shelves, Books, Authors</strong></p>
<p align="center">
<!-- Version -->
<a href="https://pypi.org/project/goodreads-user-scraper/"><img src="https://img.shields.io/pypi/v/goodreads-user-scraper?style=for-the-badge&labelColor=000000&label=Version" alt="Version"></a>
<!-- Downloads -->
<a href="https://pypi.org/project/goodreads-user-scraper/"><img src="https://img.shields.io/pepy/dt/goodreads-user-scraper?style=for-the-badge&labelColor=000000&label=Downloads&logo=pypi&logoColor=FFFFFF" alt="Downloads"></a>
<!-- Build -->
<a href="https://github.com/YashTotale/goodreads-user-scraper/actions/workflows/integrate.yml?query=branch%3Amain"><img src="https://img.shields.io/github/actions/workflow/status/YashTotale/goodreads-user-scraper/integrate.yml?branch=main&style=for-the-badge&label=Build&logo=github&logoColor=FFFFFF&labelColor=000000" alt="Build"/></a>
</p>
## Contents <!-- omit in toc -->
- [Usage](#usage)
- [Arguments](#arguments)
- [`--user_id`](#--user_id)
- [`--output_dir`](#--output_dir)
- [`--skip_user_info`](#--skip_user_info)
- [`--skip_shelves`](#--skip_shelves)
- [`--skip_authors`](#--skip_authors)
- [Troubleshooting](#troubleshooting)
- [Development](#development)
- [Publishing](#publishing)
## Usage
Using [pip](https://pypi.org/project/pip/):
```bash
pip install goodreads-user-scraper
goodreads-user-scraper --user_id <your id> --output_dir goodreads-data
```
Using [pipx](https://pypi.org/project/pipx/):
```bash
pipx run goodreads-user-scraper --user_id <your id> --output_dir goodreads-data
```
## Arguments
### `--user_id`
- **Description**: The user whose data should be scraped. Find your user id using [these directions](https://help.goodreads.com/s/article/Where-can-I-find-my-user-ID).
- **Required**: Yes
### `--output_dir`
- **Description**: The directory where all scraped data will be output.
- **Required**: No
- **Default**: `goodreads-data`
### `--skip_user_info`
- **Description**: Whether the script should skip scraping user information.
- **Required**: No
- **Default**: `False`
### `--skip_shelves`
- **Description**: Whether the script should skip scraping shelves.
- **Required**: No
- **Default**: `False`
### `--skip_authors`
- **Description**: Whether the script should skip scraping authors.
- **Required**: No
- **Default**: `False`
## Troubleshooting
Ensure that your profile is viewable by anyone:
1. Navigate to the [Goodreads Account Settings](https://www.goodreads.com/user/edit) page
2. Click on the `Settings` tab
3. In the `Privacy` section, under the **Who Can View My Profile** question, select "anyone"
## Development
1. Clone the [GitHub repository](https://github.com/YashTotale/goodreads-user-scraper)
```shell
git clone https://github.com/YashTotale/goodreads-user-scraper.git
```
2. Run the [install script](/scripts/install.sh)
```shell
sh scripts/install.sh
```
3. Make changes
4. Run the [test script](/scripts/test.sh)
```shell
sh scripts/test.sh
```
## Publishing
1. Create `.env`
```text
TWINE_USERNAME=<foo>
TWINE_PASSWORD=<bar>
```
2. Run the [publish script](/scripts/publish.sh)
```shell
sh scripts/publish.sh <patch|minor|major>
```
Raw data
{
"_id": null,
"home_page": null,
"name": "goodreads-user-scraper",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "Goodreads, Web Scraper, CLI",
"author": "Yash Totale",
"author_email": "totaleyash@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/67/c0/b81084f671e2ebba4e02a54e7b41e23604f2e9034addc5cd4814f4f608c3/goodreads-user-scraper-1.2.4.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n <img alt=\"Goodreads Icon\" width=\"200\" src=\"https://raw.githubusercontent.com/YashTotale/goodreads-user-scraper/main/static/goodreads-icon.png\"></img>\n <p></p>\n <b>Goodreads User Scraper</b>\n</h1>\n\n<p align=\"center\"><strong>Scrape Goodreads User Data: Profile, Book Shelves, Books, Authors</strong></p>\n\n<p align=\"center\">\n <!-- Version -->\n <a href=\"https://pypi.org/project/goodreads-user-scraper/\"><img src=\"https://img.shields.io/pypi/v/goodreads-user-scraper?style=for-the-badge&labelColor=000000&label=Version\" alt=\"Version\"></a> \n <!-- Downloads -->\n <a href=\"https://pypi.org/project/goodreads-user-scraper/\"><img src=\"https://img.shields.io/pepy/dt/goodreads-user-scraper?style=for-the-badge&labelColor=000000&label=Downloads&logo=pypi&logoColor=FFFFFF\" alt=\"Downloads\"></a> \n <!-- Build -->\n <a href=\"https://github.com/YashTotale/goodreads-user-scraper/actions/workflows/integrate.yml?query=branch%3Amain\"><img src=\"https://img.shields.io/github/actions/workflow/status/YashTotale/goodreads-user-scraper/integrate.yml?branch=main&style=for-the-badge&label=Build&logo=github&logoColor=FFFFFF&labelColor=000000\" alt=\"Build\"/></a> \n</p>\n\n## Contents <!-- omit in toc -->\n\n- [Usage](#usage)\n- [Arguments](#arguments)\n - [`--user_id`](#--user_id)\n - [`--output_dir`](#--output_dir)\n - [`--skip_user_info`](#--skip_user_info)\n - [`--skip_shelves`](#--skip_shelves)\n - [`--skip_authors`](#--skip_authors)\n- [Troubleshooting](#troubleshooting)\n- [Development](#development)\n- [Publishing](#publishing)\n\n## Usage\n\nUsing [pip](https://pypi.org/project/pip/):\n\n```bash\npip install goodreads-user-scraper\ngoodreads-user-scraper --user_id <your id> --output_dir goodreads-data\n```\n\nUsing [pipx](https://pypi.org/project/pipx/):\n\n```bash\npipx run goodreads-user-scraper --user_id <your id> --output_dir goodreads-data\n```\n\n## Arguments\n\n### `--user_id`\n\n- **Description**: The user whose data should be scraped. Find your user id using [these directions](https://help.goodreads.com/s/article/Where-can-I-find-my-user-ID).\n- **Required**: Yes\n\n### `--output_dir`\n\n- **Description**: The directory where all scraped data will be output.\n- **Required**: No\n- **Default**: `goodreads-data`\n\n### `--skip_user_info`\n\n- **Description**: Whether the script should skip scraping user information.\n- **Required**: No\n- **Default**: `False`\n\n### `--skip_shelves`\n\n- **Description**: Whether the script should skip scraping shelves.\n- **Required**: No\n- **Default**: `False`\n\n### `--skip_authors`\n\n- **Description**: Whether the script should skip scraping authors.\n- **Required**: No\n- **Default**: `False`\n\n## Troubleshooting\n\nEnsure that your profile is viewable by anyone:\n\n1. Navigate to the [Goodreads Account Settings](https://www.goodreads.com/user/edit) page\n2. Click on the `Settings` tab\n3. In the `Privacy` section, under the **Who Can View My Profile** question, select \"anyone\"\n\n## Development\n\n1. Clone the [GitHub repository](https://github.com/YashTotale/goodreads-user-scraper)\n\n ```shell\n git clone https://github.com/YashTotale/goodreads-user-scraper.git\n ```\n\n2. Run the [install script](/scripts/install.sh)\n\n ```shell\n sh scripts/install.sh\n ```\n\n3. Make changes\n\n4. Run the [test script](/scripts/test.sh)\n\n ```shell\n sh scripts/test.sh\n ```\n\n## Publishing\n\n1. Create `.env`\n\n ```text\n TWINE_USERNAME=<foo>\n TWINE_PASSWORD=<bar>\n ```\n\n2. Run the [publish script](/scripts/publish.sh)\n\n ```shell\n sh scripts/publish.sh <patch|minor|major>\n ```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Scrape user data from Goodreads",
"version": "1.2.4",
"project_urls": {
"Bug Tracker": "https://github.com/YashTotale/goodreads-user-scraper/issues",
"Release Notes": "https://github.com/YashTotale/goodreads-user-scraper/releases",
"Source Code": "https://github.com/YashTotale/goodreads-user-scraper"
},
"split_keywords": [
"goodreads",
" web scraper",
" cli"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a731b4c8641818d7e8e78c5418a0184bd22e247498082219f4d035299fbb6598",
"md5": "77aee595cf830ced9610f01bebefbf1a",
"sha256": "18b7d86f21bfa0a6afb6d037485c72ad60450fc3545632900314fa84b3343d9a"
},
"downloads": -1,
"filename": "goodreads_user_scraper-1.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "77aee595cf830ced9610f01bebefbf1a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8873,
"upload_time": "2024-03-19T23:17:50",
"upload_time_iso_8601": "2024-03-19T23:17:50.576672Z",
"url": "https://files.pythonhosted.org/packages/a7/31/b4c8641818d7e8e78c5418a0184bd22e247498082219f4d035299fbb6598/goodreads_user_scraper-1.2.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "67c0b81084f671e2ebba4e02a54e7b41e23604f2e9034addc5cd4814f4f608c3",
"md5": "224922836f46436f6928c12fca6ac8d1",
"sha256": "0b68b44349723222291641b87df771adee21ea27dd8fb1ce1f877c4eb2642e62"
},
"downloads": -1,
"filename": "goodreads-user-scraper-1.2.4.tar.gz",
"has_sig": false,
"md5_digest": "224922836f46436f6928c12fca6ac8d1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7079,
"upload_time": "2024-03-19T23:17:52",
"upload_time_iso_8601": "2024-03-19T23:17:52.391467Z",
"url": "https://files.pythonhosted.org/packages/67/c0/b81084f671e2ebba4e02a54e7b41e23604f2e9034addc5cd4814f4f608c3/goodreads-user-scraper-1.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-19 23:17:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "YashTotale",
"github_project": "goodreads-user-scraper",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "goodreads-user-scraper"
}