BeautifulSoupの使い方
BeautifulSoupのメモ
windowsで使う場合には、anacondaで使うと良い。必要なライブラリはbeautifulsoup4とrequestsまたはurllib.requestである。
インストール
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-beautiful-soup
pip install beautifulsoup4 pip install requests
使い方のイメージ
- スクレイピングを実行するページのURLを規定する。
- URLをもとにページを開く
- 開いたページをBeautifulSoupを使いスクレイプできる状態のhtml情報に変換する
- html情報からほしいタグや属性を定め、情報を取得する
サンプルコード
from bs4 import BeautifulSoup import requests from time import sleep URL = "https://hogehoge" response = requests.get(URL) soup = BeautifulSoup(response.text, "html.parser") date = soup.find("h3") content = soup.find(class_="hoge").text
要素の取得方法
基本的にBeautifulSoup#find()メソッドまたはBeautifulSoup.find_all()メソッドを使って要素を取得していく。 そしてurlやテキストといった種類に応じた取得手段を使う。 find()は一要素を取得する。一方find_all()はマッチする要素をリスト型に似たデータ型として情報が返される。 find_allを使った後は基本的にfor構文を使い一要素にバラしたり、リスト型データ[-1]として一要素として抜き出す。 一要素に抜き出された情報はタグに囲まれたテキスト情報をスクレイプしたい場合にはBeautifulSoup.textでテキスト情報の取得ができるし, タグ内の属性値を取得したい場合にはBeautifulSoup#get()メソッドを実行すれば良い。 BeautifulSoup.get("href")でurlを、BeautifulSoup.get("src")で画像urlを取得する。