Habréでのお気に入りのPDFへのエクスポート。 バージョン2.0

こんにちは、ハラジテリ!







皆さんの多くは、「Habrから記事を保存するだけの場合」という考えに立ち会ったことがあると思います。 同じ考えが一年ちょっと前に思いついた。



Habr、Giktayms、MegamindからPDF形式で記事をダウンロードするためのプログラムの新しいバージョンを紹介します。



新しいプロジェクトはHabraParseと呼ばれます



このプロジェクトは、サイトを解析するライブラリと、このライブラリの機能の一部のみを使用するスクリプトで構成されています。 このスクリプトはpython3で記述されており、モジュールdocoptrequestsweasyprintが必要です(これらはすべて、 pip install nameコマンドで簡単にインストールできます)。



現在、スクリプトには次の機能があります。





--gt / --mmオプションを使用すると、 GeekTimes.ruおよびMegamozg.ruから記事を保存できます。



スクリプトパラメータの簡単な説明
使用法:

./habraparse.py save_favs_list [--gt|--mm] <username> <out_file> ./habraparse.py save_favs [--gt|--mm] [-cn --save-html --limit=N] <username> <out_dir> ./habraparse.py save_post [--gt|--mm] [-c --save-html] <topic_id> <out_file>
      
      





デフォルトでは、すべてのチームがHabraHabr.ruプロジェクトを使用します。

--gt / --mmオプションを指定すると、スクリプトはGeekTimes.ru/Megamozg.ruで動作します。



チーム:

  save_favs_list -    <out_file>  URL    <username> save_favs -    <out_dir>      <username> save_post -    <out_file>    ID
      
      









使用してお楽しみください。 エラーが発生した場合は、PMでメッセージを投げるか、 プロジェクトのgithubページでバグを開始してください

誰かが何かを見逃している場合は、コメントに機能リクエストを書いて、可能な限りそれを実装しようとします。







技術的な詳細



実際、Habraparseはまず、ウェブサイトHabrahabr.ru、GeekTimes.ru、MegaMozg.ruの情報を操作するためのライブラリです。



図書館の名前は非常に独創的なものとして選ばれました



ユーザー情報は、 habr.userモジュールのクラスHabraUserGeektimesUserMegamozgUserに表示され、 以下が含まれます。





記事に関する情報は、habr.topicモジュールのクラスHabraTopicMegamozgTopicGeektimesTopicに表示され、 以下が含まれます。





このスクリプトは、構文解析にhabrライブラリーを使用し、pdfを生成するためにweasyprintライブラリーを使用します。 Weasyprintは、操作が最も簡単なインターフェイスとして選択され、通常のPDFファイルを生成できる唯一のインターフェイスとして選択されました。 ただし、判明したように、このライブラリは非常に低速です。

うまく機能する他のpdf生成ライブラリを知っている場合は、コメントまたはPMで記述してください。 ただし、開発はもともとpython3で行われたとすぐに言うので、python2の優れたpdfライブラリについて話す必要はありません。



シミュレーションは以上です。 誰もがそれを好きなら、あなたの健康を使用してください! 誰かがこのライブラリに基づいてカードと女性で独自のスクリプトを作成する準備ができている場合、すべてがあなたの手にあります!



UPD。 労働者の要請で、 icoz / habraparse docker containerの画像を更新しました。 使用順序はこちらをご覧ください



All Articles