私はすべてを整理してカタログ化するのが好きなので、アイデアは長い間、ハブから選択したトピックをPDFでラップし、日付でソートするために回転してきました。
実際、休暇中に少しの空き時間が割り当てられたので、計画を実行してHabrと共有することにしました
UPD:
-「ページ上で大きすぎる」バグを修正(githubの詳細) BifidokkとStreetAngelに感謝
-リンクによって作成されたトピック作成者
-指定されたブログからのみお気に入りを保存する機能を追加しました
スクリプトにはpython-pisaが必要です
残念ながら、私は窓の下で作業をテストしませんでした
起動順序:
fav2pdf.pyをニーズに合わせて編集する
user = 'vrtx' -   
      
        
        
        
      
     site = user + '.habrahabr.ru' 
      
        
        
        
      
     from_date = '1  2011' - ,     
      
        
        
        
      
     to_date = '' - ,    
      
      打ち上げ
python fav2pdf.py
      
      結論は次のようになります
Processed page 1 of 25: 
      
        
        
        
      
     ---------------------- 
      
        
        
        
      
     1 Topic: ->50      
      
        
        
        
      
     2 Topic: Android->[]      Android 
      
        
        
        
      
     3 Topic: Mobile Development->      Samsung Bada 
      
        
        
        
      
     4 Topic:  ->Brainfuck    
      
        
        
        
      
     Topic: ->  ,  1.0,   is locked! 
      
        
        
        
      
     ---------------------- 
      
        
        
        
      
     
      
        
        
        
      
     Prepare PDF... 
      
        
        
        
      
    
      
      その結果、スクリプトの横に、PDF形式のニックネームの名前を持つファイルを取得します
機能:
- コンテンツのホームページ
 - トピックの見出しは、Habrのトピックにつながります
 - Habrのモバイルバージョンからページが取得されます
 - 日付で選択を制限する機能。たとえば、個人のハブラッグジャーナルを保持できます。
 - ユーザーのお気に入りを引き出す機能
 
残念ながら、お気に入りのトピックは公開日ではなく、そこに追加された日付でソートされているため、すべてのお気に入りをソートする必要がありました。
これは、速度に大きく影響しませんが(3分で230トピックのオーダーの256kで読む)、不快です。
短所:
- 閉じたブログを読まない(ログインが必要)
 - 私は一時的なマイナスから願っています-preタグのコンテンツの表示の不具合(ネイティブ構文の強調表示)、著者の誰もめったにそれを使用しませんが、
 - PISAのCSSサポートが制限されているため、ディスプレイに他の欠陥がある場合もあります。
 - pisa-parserは、キリル文字を含む画像へのリンクを表示しません
 - 「愚か者の保護」はしませんでした
 
まだマイナスは見つかりませんでしたが、いずれにせよ、私が言及したものは私のお気に入りに会いました。これは230トピックを少し超えていません+私は複数のユーザーでテストしました
 
      まだ興味がある、 githubリンク
Windowsでスクリプトを実行するための手順、ありがとうdesiderata :
1.  Python 2.7.1 x86 (  3.0     ,  x64   _imaging) 
      
        
        
        
      
     2.  pisa 3.0.31     : 
      
        
        
        
      
         Windows Installer, 
      
        
        
        
      
       C:\python27\python.exe setup.py install 
      
        
        
        
      
     ReportLab Toolkit 2.5, html5lib 0.9, PyPdf 1.13, PIL 1.1.7, setuptools 0.6c11, pisa 3.0.33. 
      
        
        
        
      
     3.  C:\Python27\Lib\site-packages\PIL\Image.py  . 
      
        
        
        
      
     4.  fav2pdf.py    . 
      
        
        
        
      
     5. C:\Python27\python.exe fav2pdf.py 
      
        
        
        
      
     6. PROFIT   .
      
      PS作業の最後に、スクリプトはpisa_document.py "、行229、pisaDocumentでエラーを生成しました
それでも、PDFファイルは正常に作成され、お気に入りのすべての記事が含まれています。
PS
スクリプトの実行中に同様のエラーが発生した場合、PILパッチで処理されます。
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1498, in split 
      
        
        
        
      
     if self.im.bands == 1: 
      
        
        
        
      
     AttributeError: 'NoneType' object has no attribute 'bands' 
      
        
        
        
      
    
      
      解決策:
 # HG changeset patch -- Bitbucket.org 
      
        
        
        
      
     # Project pil-2009-raclette 
      
        
        
        
      
     # URL bitbucket.org/effbot/pil-2009-raclette/overview 
      
        
        
        
      
     # User Fredrik Lundh <fredrik@effbot.org> 
      
        
        
        
      
     # Date 1272193085 -7200 
      
        
        
        
      
     # Node ID fb7ce579f5f96f7d9008f72ab03eef4f1c6db609 
      
        
        
        
      
     # Parent 45c2debe0fc3d9632372a15826b1b64a35ff43c4 
      
        
        
        
      
     Fixed split after open bug (regression in 1.1.7). 
      
        
        
        
      
     
      
        
        
        
      
     --- a/PIL/Image.py 
      
        
        
        
      
     +++ b/PIL/Image.py 
      
        
        
        
      
     @@ -1494,11 +1494,11 @@ class Image: 
      
        
        
        
      
     def split(self): 
      
        
        
        
      
     "Split image into bands" 
      
        
        
        
      
     
      
        
        
        
      
     + self.load() 
      
        
        
        
      
     if self.im.bands == 1: 
      
        
        
        
      
     ims = [self.copy()] 
      
        
        
        
      
     else: 
      
        
        
        
      
     ims = [] 
      
        
        
        
      
     - self.load() 
      
        
        
        
      
     for i in range(self.im.bands): 
      
        
        
        
      
     ims.append(self._new(self.im.getband(i))) 
      
        
        
        
      
     return tuple(ims) 
      
        
        
        
      
    
      
      PS2
私はレギュラーには全く強くありません。誰かがより最適な表現を求めるなら、感謝します。