スポンサーリンク
URLへアクセス
# coding: utf-8 from bs4 import BeautifulSoup import urllib.request as req #HTMLを取得 url ="https://◎◎◎" res = req.urlopen(url) soup = BeautifulSoup(res, "html.parser")
coding:utf-8を入れておかないと取得してきた文字がバグる。
これだけ実行しても特に何も起きないけど、接続するための基本コード。
要素を取得する方法
HTMLからどの要素を取得して、どういう形に変換するかを指定する。
基本的な書き方は soup.find("タグ名")
タグ名で取得する
# リンク tag = soup.find("a") print(tag) # 関連文章との関係 tag = soup.find("link") print(tag) # 段落 tag = soup.find("p") print(tag) # 表の行 tag = soup.find("tr") print(tag) # 表の見出し tag = soup.find("th") print(tag) # 表の中 tag = soup.find("td") print(tag) # タイトル tag = soup.find("title") print(tag) # タイトル tag = soup.find("h3") print(tag)
タグがない場合、Noneが返ってくる。
また、これだけだと、テキストだけじゃなくて、タグも全部表示される。
例えば、https://www.python.jp/につないで、以下を実行すると
# coding:utf-8 from bs4 import BeautifulSoup import urllib.request as req #HTMLを取得 url ="https://www.python.jp/" res = req.urlopen(url) soup = BeautifulSoup(res, "html.parser") tag = soup.find("p") print(tag)
以下のように、タグも全部取ってくる。
<p class="card-text">プログラミング言語 Python の概要を紹介します</p>
テキストだけ取ってくる場合は以下のようにする。
# coding:utf-8 from bs4 import BeautifulSoup import urllib.request as req #HTMLを取得 url ="https://www.python.jp/" res = req.urlopen(url) soup = BeautifulSoup(res, "html.parser") tag = soup.find("p").text #.textを追加 print(tag)
これを実行すると以下のようになる。
プログラミング言語 Python の概要を紹介します
ちょうど、<p>タグのなかのテキストだけを取ってきた感じ。
ドキュメント
http://kondou.com/BS4/