Python 3でURLからHTMLを読み込んで要素一覧を取得する
Python 3でurllib.requestを使用してURLからHTMLを読み込み、Beautiful Soup 4とlxmlを使用して要素一覧を取得するサンプルコードです。読み込むURLはYahoo! JAPANのURLをお借りしています。
サンプルコード
import urllib.request from bs4 import BeautifulSoup #URLからウェブページを読み込みます。 url = "https://www.yahoo.co.jp/" with urllib.request.urlopen(url) as response: doc = BeautifulSoup(response.read(), "lxml") #TODO: ここで読み込んだウェブページを処理します。 all_elements = doc.select("*") #print(set((element.name for element in all_elements))) print({element.name for element in all_elements}) #セット内包記法
出力例(2020年1月22日時点)
{'font', 'input', 'img', 'nobr', 'strong', 'tr', 'head', 'center', 'br', 'link', 'body', 'html', 'style', 'td', 'area', 'a', 'tbody', 'meta', 'table', 'title', 'hr', 'map', 'form'}
参考
urllib.request --- URL を開くための拡張可能なライブラリ — Python 3.8.2 ドキュメント urllib.requestのドキュメント
http.client --- HTTP プロトコルクライアント — Python 3.8.2 ドキュメント urllib.requestの戻り値HTTPResponseオブジェクトのドキュメント
Beautiful Soup Documentation — Beautiful Soup 4.9.0 documentation Beautiful Soup 4のドキュメント