{"id":22337972,"url":"https://github.com/fallaciousreasoning/goodereader-scraper","last_synced_at":"2026-02-07T15:08:19.847Z","repository":{"id":81320686,"uuid":"279240087","full_name":"fallaciousreasoning/goodereader-scraper","owner":"fallaciousreasoning","description":"A scraper for https://goodereader.com, to help me work out what ereader to buy next.","archived":false,"fork":false,"pushed_at":"2025-05-05T08:36:25.000Z","size":209,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-15T09:20:56.681Z","etag":null,"topics":["comparison","comparison-tool","ebook","ebook-reader"],"latest_commit_sha":null,"homepage":"https://good.readr.nz","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fallaciousreasoning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-13T08:20:37.000Z","updated_at":"2025-05-05T08:36:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"3798573f-08a1-4268-b58c-69543667a809","html_url":"https://github.com/fallaciousreasoning/goodereader-scraper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fallaciousreasoning/goodereader-scraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallaciousreasoning%2Fgoodereader-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallaciousreasoning%2Fgoodereader-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallaciousreasoning%2Fgoodereader-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallaciousreasoning%2Fgoodereader-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fallaciousreasoning","download_url":"https://codeload.github.com/fallaciousreasoning/goodereader-scraper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fallaciousreasoning%2Fgoodereader-scraper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29197792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T14:35:27.868Z","status":"ssl_error","status_checked_at":"2026-02-07T14:25:51.081Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comparison","comparison-tool","ebook","ebook-reader"],"created_at":"2024-12-04T06:12:41.382Z","updated_at":"2026-02-07T15:08:19.829Z","avatar_url":"https://github.com/fallaciousreasoning.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Goodereader Scraper\n\nThis repository contains tools for sorting and filtering available ereaders. I wrote it to help me decide which ereader to buy afer my Kindle Voyage finally died.\n\n## Usage\n\nInstall requirements:\n\n    pip install -r requirements.txt\n\nRun the program:\n\n    python3 filter.py --query \"ppi=300;waterproof=ipx;color temperature=Yes\" --print price,weight,title --sort price,weight\n\nThis will filter to ereaders\n\n    1. with 300 ppi\n    2. Which have some ipx water proof rating\n    3. and which support color temperature\nNote: The `=` does not actually mean equal. The value on the right is used to make a case insensitive regex which is tested against the ereader's property value.\n\nThe results will be printed in a table with price,title and weight.\n\nThe results will be sorted by\n\n    1. Price\n    2. then weight, where the price is the same.\n\nIt will generate the following output:\n```\n+---------+--------+---------------------------------------------------------+\n| price   | weight | title                                                   |\n+---------+--------+---------------------------------------------------------+\n| $249.99 | 192 g  | Kobo Libra H2O                                          |\n| $259.99 | 300 g  | Pocketbook Inkpad 3 PRO                                 |\n| $269.99 | 275 g  | Barnes and Noble Nook Glowlight Plus 7.8                |\n| $314.99 | 188 g  | Amazon Kindle Oasis 3 with adjustable warm light (8GB)  |\n| $329.99 | 188 g  | Amazon Kindle Oasis 3 with adjustable warm light (32GB) |\n| $349.99 | 197 g  | Rakuten Kobo Forma e-Reader 8GB                         |\n| $389.99 | 197 g  | Rakuten Kobo Forma e-Reader 32GB                        |\n+---------+--------+---------------------------------------------------------+\n```\n\nNote: The first time the program is run, it may take some time, as it has to scrape the products from the good ereader store. The cache is maintained indefinitely, but you can force a rescrape by deleting `public/products.json`\n\nTo find the supported properties to query, have a look at the `public/products.json` file.\n\nForce a rescrape:\n\n    python3 scrape.py\n\nBrowse the WebUI\n\n   npx serve public\n\nShould start a server at http://localhost:3000\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffallaciousreasoning%2Fgoodereader-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffallaciousreasoning%2Fgoodereader-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffallaciousreasoning%2Fgoodereader-scraper/lists"}