archive.orgで借りられる本をPDFとして永久ダウンロードする方法

archive.orgで借りられる本をPDFとして永久ダウンロードする方法

archive.orgライブラリ archive.org には借りられる本がたくさんあります。

私は紙のコレクションを整理して電子書籍に移行していますが、Kindle や PDF で置き換えることができる本はたくさんありますが、電子書籍の形にならなかった本もかなりあります。

archive.orgは、膨大な数の書籍をスキャンし、無料で貸し出しできるサービスを提供しています。ただし、このサービスには4つの重要な制限があります。

  1. これは archive.org のページめくりインターフェースを使用していますが、これはお気に入りのソフトウェアで使用できる実際の PDF ほど快適ではありません。
  2. この本にマークを付けたり、ブックマークを付けたり、将来にわたってメモを保持したりすることはできません。
  3. インターネットに接続しているときのみ動作します。クルーズ旅行やキャンプに行く予定はありますか?残念ながらご利用いただけません。
  4. そして、それは長くは続かないかもしれない。archive.org はすでに、再出版に興味のない本が図書館から借りられることに腹を立てている出版社の一団との第 1 ラウンドで負けている

コードが救世主

幸いなことに、これらの書籍をPDFとしてダウンロードする方法があります。必要なのは、少しのJavaScriptと、指示をよく読む力だけです。

まず、完全な手順が記載されているこのGitHubにアクセスしてください。

アドバイス:

  1. ブラウザはFirefoxをご利用ください。安定して動作します。
  2. 「ファイルを保存する場所を常に確認する」のチェックを外す
  3. 数百以上のファイルをダウンロードすることになり、ファイルごとにリターン キーを押すのは避けたいものです。
  4. 本を借りた後は、画像を拡大して、少なくとも2回は拡大してみてください。私はいつも4回拡大します。そうしないと、小さなJPG画像になってしまい、読むときにぼやけてしまいます。
  5. 指示に忠実に従ってください。最初はうまくいかないかもしれませんが、もう一度指示を見直すと、小さなステップを見逃していたことに気づくでしょう。

JPGファイルをすべて入手したら、様々な方法でPDFにまとめることができます。img2pdfモジュールを使ってPDFを作成できる簡単なPythonスクリプトをご紹介します。すべてのJPGファイルを1つのフォルダに保存し、スクリプト名を次のように記述します

 make_pdf.py <ディレクトリ名>

コード:

 #!/usr/bin/python3

img2pdf、os、re、sys をインポート

def fail (メッセージ):
    print ("%s\n" % ( メッセージ ))
    sys.exit(1)

len(sys.argv) != 2 の場合:
  fail ("使用法: makepdf <ディレクトリ>")

img_dir = sys.argv[1]
img_dir = re.sub( '/$', '', img_dir )
os.path.exists ( img_dir ) == False の場合:
    失敗 ( "エラー: ディレクトリ '%s' が存在しません" % ( img_dir ) )
print ("%-30s: %s" % ( "ディレクトリ", img_dir ) )
pdf_name = "%s.pdf" % ( img_dir )
print ("%-30s: %s" % ( "作成するPDF", pdf_name ) )

画像 = []
os.listdir(img_dir) 内の fname について:
    fname.endswith(".jpg") でない場合:
        続く
    パス = os.path.join(img_dir, fname)
    os.path.isdir(path) の場合:
        続く
    images.append(パス)

画像.ソート()

print ("%-30s: %d" % ( "画像数", len(画像数) ) )
print ("%-30s: %s" % ( "最初の画像", images[0] ) )
print ("%-30s: %s" % ( "最後の画像", images[len(images)-1] ) )

open(pdf_name,"wb") を f として実行します:
    f.write(img2pdf.convert(画像))

os.system ("du -sh \"%s\"" % ( pdf_name ))

おすすめの記事