mathpython thesaurus

広告

Python3とBeautifulSoup4でサイトのタイトルを取得する

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

広告

広告