環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

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 をつける