ดาวน์โหลดและสร้าง EPUB ของหนังสือเล่มโปรดของคุณจากห้องสมุด Safari Books Online
ฉันไม่รับผิดชอบต่อการใช้โปรแกรมนี้ นี่เป็นเพียงเพื่อวัตถุประสงค์ ส่วนตัว และเพื่อ การศึกษา เท่านั้น
ก่อนการใช้งานใด ๆ โปรดอ่านข้อกำหนดในการให้บริการของ O'Reilly
safaribooks
ใช้งานไม่ได้อีกต่อไปเนื่องจากการเปลี่ยนแปลงใน ORLY APIcookies.json
ดูด้านล่างและปัญหา รัก ❤️) --kindle
ก่อนอื่น จำเป็นต้องติดตั้ง python3
และ pip3
หรือ pipenv
$ git clone https://github.com/lorenzodifuccia/safaribooks.git
Cloning into ' safaribooks ' ...
$ cd safaribooks/
$ pip3 install -r requirements.txt
OR
$ pipenv install && pipenv shell
โปรแกรมขึ้นอยู่กับโมดูล Python 3 เพียงสองโมดูลเท่านั้น:
lxml >= 4.1 . 1
requests >= 2.20 . 0
ใช้งานง่ายมาก เพียงเลือกหนังสือจากห้องสมุดและแทนที่ด้วยคำสั่งต่อไปนี้:
email:password
ของคุณเอง $ python3 safaribooks.py --cred " [email protected]:password01 " XXXXXXXXXXXXX
รหัสคือตัวเลขที่คุณพบใน URL ของหน้าคำอธิบายหนังสือ:
https://www.safaribooksonline.com/library/view/book-name/XXXXXXXXXXXXX/
ชอบ: https://www.safaribooksonline.com/library/view/test-driven-development-with/9781491958698/
$ python3 safaribooks.py --help
usage: safaribooks.py [--cred < EMAIL:PASS > | --login] [--no-cookies]
[--kindle] [--preserve-log] [--help]
< BOOK ID >
Download and generate an EPUB of your favorite books from Safari Books Online.
positional arguments:
< BOOK ID > Book digits ID that you want to download. You can find
it in the URL (X-es):
` https://learning.oreilly.com/library/view/book-
name/XXXXXXXXXXXXX/ `
optional arguments:
--cred < EMAIL:PASS > Credentials used to perform the auth login on Safari
Books Online. Es. ` --cred
" [email protected]:password01 " ` .
--login Prompt for credentials used to perform the auth login
on Safari Books Online.
--no-cookies Prevent your session data to be saved into
` cookies.json ` file.
--kindle Add some CSS rules that block overflow on ` table ` and
` pre ` elements. Use this option if you ' re going to
export the EPUB to E-Readers like Amazon Kindle.
--preserve-log Leave the `info_XXXXXXXXXXXXX.log` file even if there
isn ' t any error.
--help Show this help message.
ครั้งแรกที่คุณใช้โปรแกรม คุณจะต้องระบุข้อมูลรับรองบัญชี Safari Books Online ของคุณ (ดูอักขระพิเศษ here
)
ครั้งถัดไปที่คุณจะดาวน์โหลดหนังสือ ก่อนที่เซสชันจะหมดอายุ คุณสามารถละเว้นข้อมูลรับรองได้ เนื่องจากโปรแกรมจะบันทึกคุกกี้เซสชันของคุณในไฟล์ชื่อ cookies.json
สำหรับ SSO โปรดใช้โปรแกรม sso_cookies.py
เพื่อสร้างไฟล์ cookies.json
จากคุกกี้ SSO ที่เซสชันเบราว์เซอร์ของคุณดึงข้อมูลมา (โปรดทำตาม these steps
)
โปรดทราบหากคุณใช้พีซีที่ใช้ร่วมกัน เนื่องจากทุกคนที่สามารถเข้าถึงไฟล์ของคุณสามารถขโมยเซสชันของคุณได้ หากคุณไม่ต้องการแคชคุกกี้ เพียงใช้ตัวเลือก --no-cookies
และระบุข้อมูลรับรองของคุณตลอดเวลาผ่านตัวเลือก --cred
หรือตัวเลือกที่ปลอดภัยกว่า --login
: สิ่งนี้จะแจ้งให้คุณใส่ข้อมูลรับรองในระหว่างสคริปต์ การดำเนินการ
คุณสามารถกำหนดค่าพร็อกซีได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม HTTPS_PROXY
ในระบบของคุณ หรือใช้คำสั่ง USE_PROXY
ในสคริปต์
สิ่งสำคัญ : เนื่องจากสคริปต์ดาวน์โหลดเฉพาะหน้า HTML และสร้าง EPUB แบบ Raw คำสั่ง CSS และ XML/HTML จำนวนมากจึงผิดสำหรับ E-Reader เพื่อให้มั่นใจว่าผลลัพธ์มีคุณภาพดีที่สุด ฉันขอแนะนำให้คุณแปลง EPUB
ที่ได้รับจากสคริปต์ให้เป็น EPUB
มาตรฐานด้วย Calibre เสมอ คุณยังสามารถใช้ Calibre เวอร์ชันบรรทัดคำสั่งกับ ebook-convert
เช่น:
$ ebook-convert " XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition (9781491958698)/9781491958698.epub " " XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition (9781491958698)/9781491958698_CLEAR.epub "
หลังจากดำเนินการ คุณสามารถอ่าน 9781491958698_CLEAR.epub
ใน E-Reader ทุกเครื่อง และลบไฟล์อื่นๆ ทั้งหมดได้
โปรแกรมนี้ยังเสนอตัวเลือกเพื่อให้แน่ใจว่ามีความเข้ากันได้ดีที่สุดสำหรับผู้ที่ต้องการส่งออก EPUB
ไปยัง E-Readers เช่น Amazon Kindle: --kindle
โดยจะบล็อกโอเวอร์โฟลว์บน table
และองค์ประกอบ pre
(ดูตัวอย่าง)
ในกรณีนี้ ฉันขอแนะนำให้คุณแปลง EPUB
เป็น AZW3
ด้วย Calibre หรือเป็น MOBI
โปรดจำไว้ว่าในกรณีนี้ให้เลือก Ignore margins
ในตัวเลือกการแปลง:
$ python3 safaribooks.py --cred " [email protected]:MyPassword1! " 9781491958698
____ ___ _
/ __/__ _/ _/__ _____(_)
_ / _ ` / _/ _ ` / __/ /
/___/ _ ,_/_/ _ ,_/_/ /_/
/ _ )___ ___ / /__ ___
/ _ / _ / _ / ' _/(_-<
/____/___/___/_/_/___/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[-] Logging into Safari Books Online...
[*] Retrieving book info...
[-] Title: Test-Driven Development with Python, 2nd Edition
[-] Authors: Harry J.W. Percival
[-] Identifier: 9781491958698
[-] ISBN: 9781491958704
[-] Publishers: O ' Reilly Media, Inc.
[-] Rights: Copyright © O ' Reilly Media, Inc.
[-] Description: By taking you through the development of a real web application
from beginning to end, the second edition of this hands-on guide demonstrates the
practical advantages of test-driven development (TDD) with Python. You’ll learn
how to write and run tests before building each part of your app, and then develop
the minimum amount of code required to pass those tests. The result? Clean code
that works.In the process, you’ll learn the basics of Django, Selenium, Git,
jQuery, and Mock, along with curre...
[-] Release Date: 2017-08-18
[-] URL: https://learning.oreilly.com/library/view/test-driven-development-with/9781491958698/
[*] Retrieving book chapters...
[*] Output directory:
/XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition (9781491958698)
[-] Downloading book contents... (53 chapters)
[#####################################################################] 100%
[-] Downloading book CSSs... (2 files)
[#####################################################################] 100%
[-] Downloading book images... (142 files)
[#####################################################################] 100%
[-] Creating EPUB file...
[*] Done: /XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition
(9781491958698)/9781491958698.epub
If you like it, please * this project on GitHub to make it known:
https://github.com/lorenzodifuccia/safaribooks
e don ' t forget to renew your Safari Books Online subscription:
https://learning.oreilly.com
[ ! ] Bye !!
ผลลัพธ์จะเป็น (เปิดไฟล์ EPUB
ด้วย Calibre):
--kindle
: $ python3 safaribooks.py --kindle 9781491958698
ทางด้านขวา หนังสือที่สร้างด้วยตัวเลือก --kindle
ทางด้านซ้ายโดยไม่มี (ค่าเริ่มต้น):
สำหรับปัญหาใดๆ โปรดอย่าลังเลที่จะเปิดปัญหาที่นี่บน GitHub
ลอเรนโซ ดิ ฟุชชา