コード一覧

【Python】BeautifulSoupの基本コード

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/