【要約】 このページのPythonプログラムは指定したURLからWebページのHTMLをダウンロードし,不要な要素やフレーズを削除した上でテキストとして保存する.主な処理手順は次の通りである:HTMLダウンロード,imgとpreタグの削除,本文の抽出,不要なフレーズの削除,空行の削除,テキストファイルとして保存.削除対象のフレーズはプログラム内で指定され,広告表現や特定の語句などが含まれる.プログラムはコマンドラインからURLと保存するファイル名を引数として受け取り.処理を行う.
【目次】
【サイト内の関連ページ】
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
コマンドプロンプトを管理者として実行: 別ページ »で説明
python -m pip install -U --ignore-installed pip python -m pip install -U bs4
このプログラムは,指定されたURLからHTMLをダウンロードし,指定されたファイル名でテキストファイルとして保存する.
cd %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 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
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