😽

【LangChain】Webページの読み込み(AsyncChromiumLoader,Html2TextTransformer)

2024/06/01に公開

早い話が以下のドキュメントの説明です。
https://python.langchain.com/v0.2/docs/integrations/document_loaders/async_chromium/

以前WebBaseLoaderを使ってwebドキュメントを扱っていましたが、どう使い分けたらいいんでしょうかね

手順

ライブラリのインストール

playwrightはライブラリをインストールしただけでは使えません。
playwright installを実行してヘッドレスブラウザが動作するようにしておきましょう

!pip install -Uqq langchain-openai langchain playwright beautifulsoup4
!playwright install

ページの読み込み

from langchain_community.document_loaders import AsyncChromiumLoader
from langchain_community.document_transformers import BeautifulSoupTransformer

# Load HTML
urls = ['https://www.env.go.jp/press/index.html']
loader = AsyncChromiumLoader(urls)

google colabを使っている場合、このままloader.load()を実行するとasyncio.run()でエラーが出ます。

対処法として、nest_asyncioを読み込みます

# !pip install -Uqq nest_asyncio

import nest_asyncio
nest_asyncio.apply()
docs = loader.load()

len(docs)
#-> 1

len(docs[0].page_content)
#-> 173264

ちなみにpage_contentの中身は以下のようにHTMLがそのまま入っています。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head>\n  <meta http-equiv="X-UA-Compatible" content="IE=edge">\n  <meta charset="UTF-8">\n  <meta name="viewport" content="width=device-width, initial-scale=1">\n  <meta name="format-detection" content="telephone=no">\n  <!-- title, description, keywords -->\n  <title>報道発表一覧 | 環境省</title>\n  <meta name="description" conten

自然言語処理をするにあたってはマークアップは邪魔ですので、マークアップを削除したプレーンなテキストにしてやりましょう

プレーンなテキストへの変換

html2textを使用します。(ちなみにこれはlangchainのライブラリではないです)

# !pip install -Uqq html2text

from langchain_community.document_transformers import Html2TextTransformer

html2text = Html2TextTransformer()
docs_transformed = html2text.transform_documents(docs)
docs_transformed[0].page_content[0:500]

これでマークアップが削除されました。

* 本文へ\n  * English\n  * 検索 \n\nヘルプ\n\nナビゲーションを開閉する\n\n  * ホーム\n  * 環境省について\n\n    * 環境省について \n    * 環境省の組織案内 \n    * 大臣・副大臣・環境大臣政務官 \n    * 幹部職員名簿 \n    * 環境省の率先実行 \n    * 採用・キャリア形成支援情報 \n    * パンフレット一覧 \n    * 所管法人 \n    * 環境省五十年史 \n\n  * 政策\n\n    * 政策 \n    * お知らせ一覧 \n    * 審議会・委員会等 \n    * 重点施策・予算情報 \n    * 税制改正関係情報 \n    * 行政事業レビュー \n    * 政策評価 \n    * 国会提出法律案 \n    * 公文書管理 \n    * 府省共通公開資料等 \n\n  * 法令\n\n    * 法令 \n    * 環境基準 \n    * 法令・告示・通達 \n\n  * 報道・広報 \n\n    * 報道・広報 \n    * 大臣記者会見・談話等 \n    * 行事予定 \n    * 環境省広報誌 エコジン \n    * メ

Discussion