金子邦彦研究室人工知能ChatGPT の利用Web ページのテキストデータのダウンロード(Python を使用)(Windows 上)

Web ページのテキストデータのダウンロード(Python を使用)(Windows 上)

要約】 このページのPythonプログラムは指定したURLからWebページのHTMLをダウンロードし,不要な要素やフレーズを削除した上でテキストとして保存する.主な処理手順は次の通りである:HTMLダウンロード,imgとpreタグの削除,本文の抽出,不要なフレーズの削除,空行の削除,テキストファイルとして保存.削除対象のフレーズはプログラム内で指定され,広告表現や特定の語句などが含まれる.プログラムはコマンドラインからURLと保存するファイル名を引数として受け取り.処理を行う.

目次

  1. 前準備
  2. Web ページのテキストデータのダウンロード(Python を使用)

前準備

Python のインストール(Windows 上)

サイト内の関連ページ

関連する外部ページ

Python の公式ページ: https://www.python.org/

openai のインストール

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

    python -m pip install -U --ignore-installed pip
    python -m pip install -U bs4
    

Web ページのテキストデータのダウンロード(Python を使用)

このプログラムは,指定されたURLからHTMLをダウンロードし,指定されたファイル名でテキストファイルとして保存する.

  1. Windows で,コマンドプロンプトを実行
  2. エディタを起動
    cd %HOMEPATH%
    notepad download.py
    
  3. エディタで,次のプログラムを保存
    '''
    このプログラムは,ウェブページの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)
    
  4. Python プログラムの実行

    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
    

    [image]
  5. 結果の確認
    notepad out.txt
    

    [image]
    (以下省略)