{"id":34115066,"url":"https://github.com/m-haisham/webnovelbot","last_synced_at":"2026-05-01T20:00:51.844Z","repository":{"id":54328307,"uuid":"278651029","full_name":"m-haisham/webnovelbot","owner":"m-haisham","description":"Automate your webnovel interactions","archived":false,"fork":false,"pushed_at":"2022-03-12T08:49:18.000Z","size":9070,"stargazers_count":24,"open_issues_count":2,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-11T17:23:56.268Z","etag":null,"topics":["api","bot","scraper","selenium","webnovel"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m-haisham.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}},"created_at":"2020-07-10T14:13:10.000Z","updated_at":"2026-01-13T03:05:45.000Z","dependencies_parsed_at":"2022-08-13T12:10:28.564Z","dependency_job_id":null,"html_url":"https://github.com/m-haisham/webnovelbot","commit_stats":null,"previous_names":["mhaisham/webnovelbot"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/m-haisham/webnovelbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-haisham%2Fwebnovelbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-haisham%2Fwebnovelbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-haisham%2Fwebnovelbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-haisham%2Fwebnovelbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m-haisham","download_url":"https://codeload.github.com/m-haisham/webnovelbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-haisham%2Fwebnovelbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32510815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["api","bot","scraper","selenium","webnovel"],"created_at":"2025-12-14T19:50:35.556Z","updated_at":"2026-05-01T20:00:51.831Z","avatar_url":"https://github.com/m-haisham.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Webnovel Bot\n\nWebnovel Bot and scraper written in one, optimized for speed.\n\nProvides multiple choices of access for tasks\n\n## Install\n\n```bash\npip install webnovelbot\n```\n\nor\n\n**warning:** this method requires prior installation of `browser-cookie3`\n\n```bash\npip install git+https://github.com/mHaisham/webnovelbot.git\n```\n\n## [Sample][1]\n\nfollow the [link][1] for an example usage\n\n[1]: https://github.com/mHaisham/webnovelbot/blob/master/example.py\n\n## Signin\n\nthere are a few hiccups that one may encounter during signing in to webnovel\n\n- **Captcha:** During the signin process user can be asked to fill in a google captcha\n\n- **Guard:** After clicking the signin button the form can redirect the user to a guard website\n\nyou can handle them in different ways, `signin` method takes a variable `manual`\nwhich defaults to `False`. Behaviour of the function changes depending on it.\n\n### `manual=False`\n\nWhen manual is false signin would throw exceptions corresponding to the situation \n\n```python\ntry:\n    webnovel.signin(USER_EMAIL, USER_PASS)\nexcept CaptchaException: \n    pass\nexcept GuardException:\n    pass\n```\n\n[Read more] on handling Guard\n\n[Read more]: https://github.com/mHaisham/webnovelbot/tree/master/webnovel/handlers\n\n### `manual=True`\n\nWhen manual is true the process would be expecting user input during the above mentioned situations.\n\nIt would by default wait 10 minutes for user input before throwing a `TimeoutException`.\n\nYou may define a custom time by setting `webnovel.user_timeout`\n\n## Cookies\n\nWebnovelbot supports using cookies from other web browsers in both selenium and api using class `Cookies`\n\nIt currently supports all browsers supported by [browser_cookie3](https://github.com/borisbabic/browser_cookie3)\n\n`chrome` `firefox` `opera` `edge` `chromium`\n\n```python\nfrom webnovel import WebnovelBot, Cookies\nfrom webnovel.api import ParsedApi\n\nwebnovel = WebnovelBot(timeout=360)\n\ncookiejar = Cookies.from_browser('chrome')\n\n# this will load the cookie jar into selenium\n# depending on what you want to do after, you may want to reload the page\nwebnovel.add_cookiejar(cookiejar)\n\n# this will create the api with the cookie jar\napi = ParsedApi(cookiejar)\n```\n\n`Cookies` extends from `RequestsCookieJar` hence can be used as a replacement for it and vice-versa\n\n## Conversion tools\n\n```python\nfrom webnovel.tools import UrlTools\n```\n\nUrlTools provides methods to convert and from `novel_id`, `chapter_id`, and `profile_id` to their respective urls\n\n## Analytics\n\nSupports multiple analytic tools with an easily extensible interface\n\n[Read more](https://github.com/mHaisham/webnovelbot/tree/master/webnovel/analytic)\n\n## Goals\n\nPrimary focus of development is to reduce the usage of selenium.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-haisham%2Fwebnovelbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-haisham%2Fwebnovelbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-haisham%2Fwebnovelbot/lists"}