便利でアルデバランを読む

確かに何人かの馬鹿げた人はサイトhttp://lib.aldebaran.ruで本を読んでいます。 彼らは、しばらくの間、サイト上のテキストがコピーから「保護」されていることを知っています。 もちろん、ほとんどの本は読み取り可能な形式でダウンロードできますが、多くの人気のある本はオンラインでしか読むことができません。 これは不便です。

次のPythonの簡単なスクリプトは、書籍全体をダウンロードし、そこに詰まったゴミをすべて切り取ってコピーを困難にします。



 urllib、re、sysのインポート
 p_key = re.compile( 'http:\ / \ / lib \ .aldebaran \ .ru \ / getpage \ / 1 \ /.*? "')
 p_span = re.compile( '<span class = h>(。*?)<\ / span>')
 p_s = re.compile( '\'; s \ + = \ '')
 p_p = re.compile( '(<p>。*?<\ / p>)')
 p_url_name = re.compile( '^(http:\ / \ / lib.aldebaran.ru \ / author \ /.*?__)')
 def getpage(url):
    試してください:
         key = p_key.findall(urllib.urlopen(url).read())[0] [-33:-1]
    を除く:
        何も返さない
     urllib.urlopen( "http://lib.aldebaran.ru/getpage/1/" +キー).read()
     page = urllib.urlopen( "http://lib.aldebaran.ru/getpage/2/" +キー).read()
     page = p_span.sub( ''、ページ)
     page = '' .join(p_p.findall(ページ))
     page = p_s.sub( ''、ページ)
    戻りページ

 url = sys.argv [1]
 url = p_url_name.findall(url)[0]
 i = 1
 Trueの場合:
     page = getpage(url + str(i)+ '.html')
     i + = 1
     if page!=なし:
        印刷ページ
    その他:
         sys.exit(0)


このスクリプトは、ブックの任意のページへのリンクへのコマンドラインパラメーターを受け取り、そのテキストを標準出力に表示します。

使い方はとても簡単です。

python lit.py lib.aldebaran.ru/author/sadov_sergei/sadov_sergei_klinki_u_trona/sadov_sergei_klinki_u_trona__0.html > lit.html





PS倫理に関する質問は別としてください。 個人的には、お気に入りの本を著者に直接支払います。

UPD

そんなに賢いのは私だけではありません。 提案されたコメントで

eBookDownloader-フィックスブック 、aldebara、liteportalライブラリをサポートするアプリケーション全体(.NETが必要)

FireFox DirectX DirectX用の小さなプラグインと同様に



All Articles