Personal tools
You are here: Home Lights on Zope 青空文庫で特定の著者のZipファイルのURLリストを得て、Kindle 用PDF変換の前準備をするpythonスクリプト
« August 2017 »
Su Mo Tu We Th Fr Sa
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Recent entries
Python Anywhere seko 2016-11-19
帯状疱疹 seko 2016-11-18
Chromebook購入 seko 2016-11-03
マカロニさん めざせデータサイエンティスト seko 2016-11-02
脳波計muse 購入 seko 2016-09-04
フェルデンクライスメソッド227回目  seko 2016-08-27
EXCELマクロ タスクが残っていてTypeNameとShell.Applicationを使って起動済みのIEが探せない seko 2016-04-19
pythonでNITE 化学物質総合情報提供システムへアクセス seko 2016-04-19
Raspberry Pi 3で侵入者を発見 seko 2016-04-03
Raspberry Pi 3 OSのインストール seko 2016-04-02
Docker コンテナをexportするpythonスクリプト seko 2016-03-31
Effective Python ―Pythonプログラムを改良する59項目 seko 2016-03-30
確かな力が身につくPython「超」入門 鎌田 正浩 (著) seko 2016-03-29
pythonでバブルソート seko 2016-03-24
Recent trackbacks
コピー時計 コピー時計 2017-08-15
『必笑小咄のテクニック』 米原万里 じゅうのblog 2016-04-26
まんが 哲学入門 天竺堂の本棚 2014-02-24
史上最強の哲学入門 東洋の哲人たち 天竺堂の本棚 2014-02-19
「本屋さんで待ち合わせ」三浦しをん 粋な提案 2013-10-01
PythonでCPUの数を調べる。 ヲドリテヒヅル 2012-12-03
ぼくはお金を使わずに生きることにした 紹介 感想 わかめになりたい 2011-12-02
au の HTC EVO がなかなか良かった話 tdtshのブログ 2011-05-25
逆転経済の反響 世界一のバイヤーになってみろ!!坂口孝則の本棚と雑文 2010-12-27
Who Moved My Cheese? 大学生の気ままな書評 おすすめ和書・洋書! 2010-10-30
sekoさんちからPOSTがあったけど・・・ PapaBlog 2010-09-12
Squid(キャッシュサーバーモード)を試してみる PapaBlog 2010-08-25
Apache 2.2のキャッシュ機能を使ってみる PapaBlog 2010-08-08
愛と資本主義 中村うさぎ ばみの乱読日記 と猫雑貨。 2010-08-07
 
Document Actions

青空文庫で特定の著者のZipファイルのURLリストを得て、Kindle 用PDF変換の前準備をするpythonスクリプト

by seko posted at 2009-12-07 18:54 last modified 2009-12-07 19:09

昨日は、青空キンドル(仮)のサイト を使わせていただいて、岡本綺堂の半七捕物帖の第一話である「お文の魂」をPDFに変換し、Kindleで読んでみました。

でも、岡本綺堂の作品 は226個もあります。

ここは著者を選べば、その作品すべてがPDF化されて、Kindleに転送されるのがよいなと思います。

次のような手順になるでしょうか。

  • 著者のURLから、すべての図書カードのリストを作る
  • 図書カードのリストからzipファイルのurlリストを得る
  • 青空キンドル(仮)のサイト にzipのURLを渡して、PDFをダウンロードする(やったことないです)
  • 著者の名前や書名をローマ字に変換して、PDFのファイル名を著者+書名に変更する(できるんでしょうか?)
  • KindleのdocumentsフォルダーにPDFを転送して、完了したらデバイスを取り外す

とりあえず、一番目と二番目を行うpythonスクリプトを書いてみました。プログラムを書くのは一年ぶりのような気がします。

    # -*- encoding: utf-8 -*-
    #-------------------------------------------------------------------------------
    # Name:        aozoralst.py
    # Purpose:     青空文庫で著者のURLを指定すると、公開されている図書カードを見つけ
    #       て、zipファイルのリストを得る
    # Author:      seko
    #
    # Created:     07/12/2009
    # Copyright:   (c) seko 2009
    # Licence:     ご自由に
    #-------------------------------------------------------------------------------
    #!/usr/bin/env python

    import urllib2
    import re
    import urlparse

    def get_booklist(url):
        """
        青空文庫の著者のURLを指定して、図書カードのURLのリストを得る
        """
        booklist=[]
        for line in urllib2.urlopen(url):
            s = unicode(line, 'euc-jp')
            m=re.search('a href="(\S*cards/\S*.html)',s)
            try:
                booklist.append (m.group(1))
            except:
                pass
        book_url=[]
        for book in booklist:
            book_url.append ( urlparse.urljoin (url,book))
        return book_url

    def get_zip_url(url):
        """
        図書カードからzipファイルのURLを得る。複数個の場合あり(ルビの有無など)
        """
        ziplist=[]
        for line in urllib2.urlopen(url):
            s = unicode(line, 'euc-jp')
            m=re.search('a href="(\S*.zip)"',s)
            try:
                ziplist.append(urlparse.urljoin(url, (m.group(1))))
            except:
                pass
        return ziplist

    ### main ###

    #岡本綺堂のページ
    url="http://www.aozora.gr.jp/index_pages/person82.html"

    for book in get_booklist(url):
        print book

    #get_zip_url("http://www.aozora.gr.jp/cards/000082/card49564.html")
    for book in get_booklist(url):
        for zip in get_zip_url(book):
            print zip

結果

図書カードのリスト :

 http://www.aozora.gr.jp/cards/000082/card49564.html
 http://www.aozora.gr.jp/cards/000082/card45478.html
 http://www.aozora.gr.jp/cards/000082/card45500.html
 http://www.aozora.gr.jp/cards/000082/card43042.html
 http://www.aozora.gr.jp/cards/000082/card49562.html

zipのリスト :

 http://www.aozora.gr.jp/cards/000082/files/49564_ruby_33587.zip
 http://www.aozora.gr.jp/cards/000082/files/45478_ruby_24508.zip
 http://www.aozora.gr.jp/cards/000082/files/45500_ruby_23134.zip
 http://www.aozora.gr.jp/cards/000082/files/43042_ruby_16085.zip
 http://www.aozora.gr.jp/cards/000082/files/49562_ruby_33588.zip
 http://www.aozora.gr.jp/cards/000082/files/49561_ruby_33578.zip

The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/2148/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)


Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: