Algebra-FUN/WeReadScan

Pythonalgebra-fun.github.io/WeReadScan/

扫描“微信读书”已购图书并下载本地PDF的爬虫

seleniumwereadweb-crawlerbook-downloader
Crescimento de estrelas
Estrelas
1k
Forks
174
Crescimento semanal
+2
Issues
11
5001k
jan. de 2023mar. de 2024jun. de 2025set. de 2026
ArtefatosPyPI
README

WeReadScan

GitHub last commit GitHub code size in bytes GitHub top language pip

About

一个用于的将微信读书上的图书扫描转换本地PDF/HTML的爬虫库.

谈谈为何而开发

不得不说,“微信读书”是一个很好的平台。但是美中不足很明显,用户购买了图书资源,但是只能在“微信读书”的Application中阅读或者做一些文字批注╮(╯▽╰)╭,这些功能相较于购买的纸质书籍显然是不足的。比如,作者就习惯于用iPad的相关notebook类app做笔记,而“微信读书”并没有适配pencil做handwriting笔记的功能。

因此,既然“微信读书”没有提供,那只好自己解决了。于是,经过2天的开发,终于有了这个爬虫脚本,也可以开心地做手写笔记了o( ̄▽ ̄)ブ

相关版本

Sec-ant的建议下,参考了他的解决方案weread-scraper,将其中最重要的获取#preRenderContent的部分脚本进行整合,得到了WeReadScan-HTML版本,可以直接自动化获得多本图书的HTML,更加高效。

Get started

pip install WeReadScan-HTML

本项目需要使用selenium,需要对selenium具备基础的了解

Demo

话不多说,直接上代码

from selenium.webdriver import Edge
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.edge.options import Options

from WeReadScan import WeRead

options = Options()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument('disable-infobars')
options.add_argument('log-level=3')
options.add_argument("headless")

# launch Webdriver
print('Webdriver launching...')
driver = Edge(options=options)
# driver = Edge(service=service, options=options)
print('Webdriver launched.')

with WeRead(driver,debug=True) as weread:
    weread.login() #? login for grab the whole book
    weread.scan2html('https://weread.qq.com/web/reader/2c632ef071a486a92c60226kc81322c012c81e728d9d180')
    weread.scan2html('https://weread.qq.com/web/reader/a9c32f40717db77aa9c9171kc81322c012c81e728d9d180')

扫描结果样例:

几点说明:

  1. webdriver 需要 无头(headless) 模式启动
  2. 只有登陆后,才能扫描完整的图书资源;若不登陆,也可以扫描部分无需解锁的部分

API Reference

WeRead

WeReadScan.WeRead(headless_driver)

微信读书网页代理,用于图书扫描

Args

  • headless_driver: 设置了headless的Webdriver示例

Returns

  • WeReadInstance

Usage

chrome_options = ChromeOptions()
chrome_options.add_argument('--headless')
headless_driver = Chrome(chrome_options=chrome_options)
weread = WeRead(headless_driver)

Login

WeReadScan.WeRead.login(wait_turns=15)

展示二维码以登陆微信读书

Args

  • wait_turns: 登陆二维码等待扫描的等待轮数

Usage

weread.login()

Scan2html

WeReadScan.WeRead.scan2html(book_url, save_at='.', show_output=True)

扫面微信读书的书籍转换为PDF并保存本地

Args

参数名 类型 默认值 描述
book_url str 必填 扫描目标书籍的URL
save_at str '.' 保存地址
show_output bool True 是否在该方法函数结束时展示生成的PDF文件

Usage

weread.scan2html('https://weread.qq.com/web/reader/a57325c05c8ed3a57224187kc81322c012c81e728d9d180')

Disclaimer

  • 本脚本仅限用于已购图书的爬取,用于私人学习目的,禁止用于商业目的和网上资源扩散,尊重微信读书方面的利益
  • 若User使用该脚本用于不当的目的,责任由使用者承担,作者概不负责

Stargazers over time

Stargazers over time

Repositórios relacionados
SeleniumHQ/selenium

A browser automation framework and ecosystem.

JavaMavenlibraryApache License 2.0seleniumwebdriver
selenium.dev
34.5k8.7k
CloakHQ/CloakBrowser

Stealth Chromium that passes every bot detection test. Drop-in Playwright replacement with source-level fingerprint patches. 30/30 tests passed.

PythonPyPIMIT Licenseanti-detectbot-detection
cloakbrowser.dev
31.3k2.6k
feder-cr/Jobs_Applier_AI_Agent_AIHawk

Open source AI job application toolkit in Python: generate a resume and cover letter tailored to each job posting, and drive a stealth browser from any AI client over MCP.

GNU Affero General Public License v3.0automationpython
30.3k4.6k
browserbase/stagehand

The SDK For Browser Agents

TypeScriptnpmMIT Licenseagentsai
stagehand.dev
24.2k1.7k
Skyvern-AI/skyvern

Automate browser based workflows with AI

PythonPyPIlibraryGNU Affero General Public License v3.0apiautomation
skyvern.com
23k2.2k
InstaPy/InstaPy

📷 Instagram Bot - Tool for automated Instagram interactions

PythonPyPIGNU General Public License v3.0instagramclarifai
18.2k3.9k
Kr1s77/awesome-python-login-model

😮python模拟登陆一些大型网站,还有一些简单的爬虫,希望对你们有所帮助❤️,如果喜欢记得给个star哦🌟

PythonPyPIawesomeOtherpythonspiders
16.2k3.2k
budtmo/docker-android

Android in docker solution with noVNC supported, video recording and mcp server

PythonPyPIappOtherdocker-androidandroid
15.8k1.8k
shengqiangzhang/examples-of-web-crawlers

一些非常有趣的python爬虫例子,对新手比较友好,主要爬取淘宝、天猫、微信、微信读书、豆瓣、QQ等网站。(Some interesting examples of python crawlers that are friendly to beginners. )

HTMLtutorialMIT Licensecrawlerspider
14.7k3.8k
schickling/chromeless

🖥 Chrome automation made simple. Runs locally or headless on AWS Lambda.

TypeScriptnpmlibraryMIT Licenseserverlessintegration-testing
chromeless.netlify.com
13.2k568
seleniumbase/SeleniumBase

APIs for browser automation, testing, and bypassing bot-detection. Includes CDP Mode: A stealthy configuration for chromium that passes every bot detection test.

PythonPyPIMIT Licensepythonselenium
seleniumbase.io
13k1.6k
ultrafunkamsterdam/undetected-chromedriver

Custom Selenium Chromedriver | Zero-Config | Passes ALL bot mitigation systems (like Distil / Imperva/ Datadadome / CloudFlare IUAM)

PythonPyPIGNU General Public License v3.0chromedriverselenium
github.com/UltrafunkAmsterdam/undetected-chromedriver
12.8k1.3k