Python3とBeautifulSoup4でサイトのタイトルを取得する
2023.02.18
BeautifulSoup と urllib3 でサイトのタイトルを取得するコード:
import urllib3
from bs4 import BeautifulSoup
url = ''
http = urllib3.PoolManager()
response = http.request('get', url)
soup = BeautifulSoup(response.data, 'html.parser')
title = soup.find('title').text
urllib3.PoolManager() のオブジェクトからリクエストし、ページの内容を取得します。そのデータを BeautifulSoup に入れますが、第二引数に html.parser を指定します。
タイトルは soup の find で取得しますが、返り値は navigablestring という特殊な型で、そのままだとデータベースに入りません。そのため上のように text をつけます。string でなく text です。
ポイント
- urllib3.PoolManager() で通信用のオブジェクトをつくる
- response でなく response.data を BeautifulSoup に入れる
- find の値を文字列にするため text をつける