検索
ホームページバックエンド開発Python チュートリアルPython クローラー実装チュートリアルを PDF 電子書籍に変換

この記事では、Python クローラーを使用して「Liao Xuefeng の Python チュートリアル」を PDF に変換する方法とコードを共有します。必要な友人はそれを参照してください。

クローラーを作成するには、Python を使用するより適切な方法はないようです。 、Python コミュニティによって提供されています。 目がくらむほど多くのクローラー ツールがあり、直接使用できるさまざまなライブラリを使用して、数分でクローラーを作成できます。 今日は、Liao Xuefeng の Python チュートリアルをダウンロードしました。誰もがオフラインで読めるように、PDF 電子書籍にしました。

クローラーを書き始める前に、まず Web サイトのページ構造を分析しましょう 1. Web ページの左側はチュートリアルのディレクトリの概要であり、各 URL は右側の記事に対応しています。記事のタイトル、中央は記事のテキスト部分です。クロールしたいデータはすべての Web ページのテキスト部分です。コメント領域はありません。私たちには慣れているので無視して構いません。

python爬虫实现教程转换成 PDF 电子书

ツールの準備

Web サイトの基本構造を理解したら、クローラーが依存するツールキットの準備を開始できます。 request と beautifulsoup はクローラーの 2 つの主要なアーティファクトであり、reuqests はネットワーク リクエストに使用され、Beautifulsoup は HTML データの操作に使用されます。これら 2 つのシャトルを使用すると、scrapy のようなクローラー フレームワークを必要としません。これを小さなプログラムで使用するのは、大ハンマーで鶏を殺すようなものです。さらに、HTML ファイルを PDF に変換するため、対応するライブラリのサポートも必要です。wkhtmltopdf は、複数のプラットフォームに適した HTML を PDF に変換できる非常に優れたツールです。まず、次の依存関係パッケージをインストールします。

次に、wkhtmltopdfをインストールします

pip install requests
pip install beautifulsoup
pip install pdfkit
<p></p>

wkhtmltopdfをインストールします

Windowsプラットフォームは、wkhtmltopdf公式Webサイトから安定版を直接ダウンロードします。 2 インストールが完了したら、実行パスを追加します。プログラムのファイルをシステム環境 $PATH 変数に追加しないと、pdfkit は wkhtmltopdf を見つけることができず、「wkhtmltopdf 実行可能ファイルが見つかりません」というエラーが表示されます。 Ubuntu と CentOS はコマンドラインを使用して直接インストールできます

$ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf   # centos
<p></p>

クローラーの実装

すべての準備ができたらコーディングを開始できますが、コードを記述する前に考えを整理する必要があります。このプログラムの目的は、すべての URL に対応する HTML テキスト部分をローカルに保存し、pdfkit を使用してこれらのファイルを PDF ファイルに変換することです。まずタスクを分割して、特定の URL に対応する HTML テキストをローカルに保存し、次にすべての URL を検索して同じ操作を実行します。

Chrome ブラウザを使用してページの本文部分でタグを見つけ、F12 キーを押して本文に対応する p タグを見つけます: <p></p> (p は本文の内容)ウェブページの。リクエストを使用してページ全体をローカルにロードした後、 beautifulsoup を使用して HTML dom 要素を操作し、テキスト コンテンツを抽出できます。 <p></p>,该 p 是网页的正文内容。用 requests 把整个页面加载到本地后,就可以使用 beautifulsoup 操作 HTML 的 dom 元素 来提取正文内容了。

python爬虫实现教程转换成 PDF 电子书
具体的实现代码如下:用 soup.find_all 函数找到正文标签,然后把正文部分的内容保存到 a.html 文件中。

def parse_url_to_html(url):
  response = requests.get(url)
  soup = BeautifulSoup(response.content, "html5lib")
  body = soup.find_all(class_="x-wiki-content")[0]
  html = str(body)
  with open("a.html", &#39;wb&#39;) as f:
    f.write(html)
<p></p>

第二步就是把页面左侧所有 URL 解析出来。采用同样的方式,找到 左侧菜单标签 <ul></ul>

PDF 電子書籍に変換された Python クローラー実装チュートリアル
具体的な実装コードは次のとおりです。Soup.find_all 関数を使用してテキスト タグを検索し、保存します。テキスト部分の内容を html ファイルにコピーします。

python爬虫实现教程转换成 PDF 电子书

def get_url_list():
  """
  获取所有URL目录列表
  """
  response = requests.get("http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000")
  soup = BeautifulSoup(response.content, "html5lib")
  menu_tag = soup.find_all(class_="uk-nav uk-nav-side")[1]
  urls = []
  for li in menu_tag.find_all("li"):
    url = "http://www.liaoxuefeng.com" + li.a.get(&#39;href&#39;)
    urls.append(url)
  return urls
<p></p>

2 番目のステップは、ページの左側にあるすべての URL を解析することです。同じメソッドを使用して、左側のメニュー ラベル <ul></ul> を見つけます

<p></p> <p></p> 具体的なコード実装ロジック: uk-nav と uk-nav-side の 2 つのクラス属性があるためです。実際のディレクトリのリストは 2 番目のページです。すべての URL が取得され、URL を HTML に変換する関数が最初のステップで記述されました。

def save_pdf(htmls):
  """
  把所有html文件转换成pdf文件
  """
  options = {
    &#39;page-size&#39;: &#39;Letter&#39;,
    &#39;encoding&#39;: "UTF-8",
    &#39;custom-header&#39;: [
      (&#39;Accept-Encoding&#39;, &#39;gzip&#39;)
    ]
  }
  pdfkit.from_file(htmls, file_name, options=options)

<p></p>最後のステップは、htmlをpdfファイルに変換することです。 pdfkit はすべてのロジックをカプセル化しているため、pdf ファイルへの変換は非常に簡単です。関数 pdfkit.from_file

python爬虫实现教程转换成 PDF 电子书

rrreee

を呼び出して save_pdf 関数を実行するだけで、電子書籍の PDF ファイルが生成されます。レンダリング:

🎜🎜🎜概要🎜🎜🎜 コードの総量は 50 行未満になります。ただし、ちょっと待ってください。実際、上記のコードでは、タイトルの取得方法など、いくつかの詳細が省略されています。記事、テキストコンテンツのimgタグが相対パスとなっているため、PDFで画像を正常に表示したい場合は、相対パスを絶対パスに変更し、保存されている一時HTMLファイルを削除する必要があります🎜

PDF 電子書籍に変換された Python クローラー実装チュートリアルをさらに詳しく知りたい場合は、PHP 中国語 Web サイトに注目してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. C:曲線と使いやすさの学習Python vs. C:曲線と使いやすさの学習Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Python vs. C:メモリ管理とコントロールPython vs. C:メモリ管理とコントロールApr 19, 2025 am 12:17 AM

PythonとCは、メモリ管理と制御に大きな違いがあります。 1。Pythonは、参照カウントとガベージコレクションに基づいて自動メモリ管理を使用し、プログラマーの作業を簡素化します。 2.Cには、メモリの手動管理が必要であり、より多くの制御を提供しますが、複雑さとエラーのリスクが増加します。どの言語を選択するかは、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

科学コンピューティングのためのPython:詳細な外観科学コンピューティングのためのPython:詳細な外観Apr 19, 2025 am 12:15 AM

科学コンピューティングにおけるPythonのアプリケーションには、データ分析、機械学習、数値シミュレーション、視覚化が含まれます。 1.numpyは、効率的な多次元配列と数学的関数を提供します。 2。ScipyはNumpy機能を拡張し、最適化と線形代数ツールを提供します。 3. Pandasは、データ処理と分析に使用されます。 4.matplotlibは、さまざまなグラフと視覚的な結果を生成するために使用されます。

PythonとC:適切なツールを見つけるPythonとC:適切なツールを見つけるApr 19, 2025 am 12:04 AM

PythonまたはCを選択するかどうかは、プロジェクトの要件に依存するかどうかは次のとおりです。1)Pythonは、簡潔な構文とリッチライブラリのため、迅速な発展、データサイエンス、スクリプトに適しています。 2)Cは、コンピレーションと手動メモリ管理のため、システムプログラミングやゲーム開発など、高性能および基礎となる制御を必要とするシナリオに適しています。

データサイエンスと機械学習のためのPythonデータサイエンスと機械学習のためのPythonApr 19, 2025 am 12:02 AM

Pythonは、データサイエンスと機械学習で広く使用されており、主にそのシンプルさと強力なライブラリエコシステムに依存しています。 1)Pandasはデータ処理と分析に使用され、2)Numpyが効率的な数値計算を提供し、3)SCIKIT-LEARNは機械学習モデルの構築と最適化に使用されます。これらのライブラリは、Pythonをデータサイエンスと機械学習に理想的なツールにします。

Pythonの学習:2時間の毎日の研究で十分ですか?Pythonの学習:2時間の毎日の研究で十分ですか?Apr 18, 2025 am 12:22 AM

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発用のPython:主要なアプリケーションWeb開発用のPython:主要なアプリケーションApr 18, 2025 am 12:20 AM

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Python vs. C:パフォーマンスと効率の探索Python vs. C:パフォーマンスと効率の探索Apr 18, 2025 am 12:20 AM

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境