Web ページのテキストデータのダウンロード(Python を使用)(Windows 上)
【目次】
前準備
Python 3.12 のインストール
以下のいずれかの方法で Python 3.12 をインストールする。
方法1:winget によるインストール
Python がインストール済みの場合、この手順は不要である。管理者権限のコマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。
winget install -e --id Python.Python.3.12 --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 AssociateFiles=1 InstallLauncherAllUsers=1"
--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。
方法2:インストーラーによるインストール
- Python 公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンから Windows 用インストーラーをダウンロードする。
- ダウンロードしたインストーラーを実行する。
- 初期画面の下部に表示される「Add python.exe to PATH」に必ずチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから
pythonコマンドを実行できない。 - 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。
インストールの確認
コマンドプロンプトで以下を実行する。
python --version
バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。
openai のインストール
- 以下の手順を管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。
python -m pip install -U --ignore-installed pip
python -m pip install -U bs4
Web ページのテキストデータのダウンロード(Python を使用)
このプログラムは,指定されたURLからHTMLをダウンロードし,指定されたファイル名でテキストファイルとして保存する.
- 指定されたURLからHTMLをダウンロードする.
- img, pre 要素を削除する.
- テキストの本文部分を抽出する.
- 指定したフレーズ(プログラム内で指定)を取り除く.
- 空行を取り除く.
- 抽出されたテキストを指定されたファイル名でテキストファイルとして保存.
- Windows で,コマンドプロンプトを実行
- エディタを起動
cd /d c:%HOMEPATH% notepad download.py - エディタで,次のプログラムを保存
''' このプログラムは,ウェブページのHTMLを解析し,特定の要素(preタグとimgタグ)を削除する.その後,HTMLからテキストを抽出し,不要なフレーズを削除する.削除されるフレーズは,ソースコード内で定義された一連の文字列で,これには広告表現や日本語の丁寧な文末表現などが含まれている.削除したいフレーズのリストは柔軟であり,ソースコードを書き換えることで容易にフレーズを変更することができる.最終的に,抽出されたテキストは指定したファイルに保存される. ''' import requests from bs4 import BeautifulSoup import re import sys def download_html_and_save_as_text(url, filename): # URLからHTMLをダウンロード response = requests.get(url) response.encoding = response.apparent_encoding # 文字コードを自動的に判定 # HTMLをパース soup = BeautifulSoup(response.text, 'html.parser') # 不要なHTMLタグを削除 (preとimg) for tag_type in ['pre', 'img']: for tag in soup.find_all(tag_type): tag.decompose() # 不要なフレーズを削除 remove_strings = [ 'この記事は広告です', '広告掲載によるものです', 'この記事は広告です', 'バナー広告表示', 'バナー広告', 'バナー', '広告掲載', '広告提供', 'ポップアップ広告', 'ポップアップ広告表示', '広告', 'スポンサード', 'Sponsored', 'Sponsor', 'Ads', 'クリックして続きを読む', '詳細はこちら', '関連記事', '続きを読む', '詳細を確認する', '共有する', 'シェアする', 'ツイートする', 'もっと見る', '検索オプション', '検索履歴の表示', 'ご意見・ご要望をお聞かせください', '個人情報保護ポリシー', '規約ページ', 'ウェブサイト利用', 'new!', 'ニュースランキング', '写真ランキング', '動画ランキング', 'お客さまのご利用端末からの情報の外部送信について', 'マイページ', '購入履歴', 'トップ速報', '特定商取引法の表示', ] # 本文を抽出 text = soup.get_text() # 各不要なフレーズを削除 for remove_string in remove_strings: text = text.replace(remove_string, '') # 空行を取り除く text = re.sub(r'\n\s*\n', '\n', text) # テキストファイルに保存 with open(filename, 'w', encoding='utf-8') as f: f.write(text) # コマンドライン引数からURLとファイル名を取得 url = sys.argv[1] filename = sys.argv[2] # 関数を実行 download_html_and_save_as_text(url, filename) - Python プログラムの実行
Python プログラムの実行
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
【サイト内の関連ページ】 Python のまとめ: 別ページ »
プログラムを download.pyのようなファイル名で保存したので, 「python download.py」のようなコマンドで行う.
https://www.google.com のところにはダウンロードしたい URL を指定すること.
out.txt のところには結果を保存したいファイル名を指定すること.
python download.py https://www.google.com out.txt
- 結果の確認
notepad out.txt
(以下省略)