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

Python クローラー実装チュートリアルを PDF 電子書籍に変換

Feb 21, 2017 pm 05:06 PM

この記事では、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
ログイン後にコピー

wkhtmltopdfをインストールします

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

$ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf   # centos
ログイン後にコピー

クローラーの実装

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

Chrome ブラウザを使用してページの本文部分でタグを見つけ、F12 キーを押して本文に対応する p タグを見つけます: <p > (p は本文の内容)ウェブページの。リクエストを使用してページ全体をローカルにロードした後、 beautifulsoup を使用して HTML dom 要素を操作し、テキスト コンテンツを抽出できます。 <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)
ログイン後にコピー

第二步就是把页面左侧所有 URL 解析出来。采用同样的方式,找到 左侧菜单标签 <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
ログイン後にコピー

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

具体的なコード実装ロジック: 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)
ログイン後にコピー

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

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

rrreee

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

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

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

人気のあるPythonライブラリとその用途は何ですか? 人気のあるPythonライブラリとその用途は何ですか? Mar 21, 2025 pm 06:46 PM

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

正規表現とは何ですか? 正規表現とは何ですか? Mar 20, 2025 pm 06:25 PM

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

See all articles