О проекте
WeReadScan — это библиотека для сканирования и преобразования в PDF или HTML книг, доступных на платформе «微信读书».
«微信读书» — это хорошая платформа. Однако у неё есть очевидный недостаток: пользователи покупают книги, но могут читать их только в приложении «微信读书», либо делать текстовые заметки. Эти функции явно недостаточны по сравнению с бумажными книгами. Например, автор привык делать заметки на iPad, а в «微信读书» нет функции для рукописных заметок.
Поэтому, раз «微信读书» не предоставляет такой возможности, нужно решить проблему самостоятельно. В итоге, после двух дней разработки появился этот скрипт-паук, и теперь можно с удовольствием делать рукописные заметки.
По совету Sec-ant, была взята за основу его решение weread-scraper, и наиболее важная часть скрипта, связанная с получением #preRenderContent, была интегрирована в WeReadScan-HTML. Это позволило автоматически получать HTML-код для нескольких книг более эффективно.
pip install WeReadScan-HTML
Для этого проекта требуется использование selenium, необходимо иметь базовые знания о нём.
Перейдём сразу к коду:
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')
Пример результата сканирования:
Несколько замечаний:
WeReadScan.WeRead(headless_driver)
Этот прокси-сервер «微信读书» используется для сканирования книг.
chrome_options = ChromeOptions()
chrome_options.add_argument('--headless')
headless_driver = Chrome(chrome_options=chrome_options)
weread = WeRead(headless_driver)
WeReadScan.WeRead.login(wait_turns=15)
Отображает QR-код для входа в «微信读书».
weread.login()
WeReadScan.WeRead.scan2html(book_url, save_at='.', show_output=True)
Сканирует книги на «微信读书» и сохраняет их локально в формате PDF.
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
book_url | str | 必填 | URL сканируемой книги |
save_at | str | '.' | Путь сохранения файлов |
show_output | bool | True | Отображать ли PDF-файл после завершения метода |
weread.scan2html('https://weread.qq.com/web/reader/a57325c05c8ed3a57224187kc81322c012c81e728d9d180')
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )