最近知ったgazpacho
というPythonモジュールが素敵だったので紹介します。
gazpachoとは
gazpachoは、「シンプルかつ高速で、モダンなウェブスクレイピング用のライブラリ」です。
gazpacho is a simple, fast, and modern web scraping library. The library is stable, actively maintained, and installed with zero dependencies.
(https://pypi.org/project/gazpacho/)
Star数は400とまだマイナーなため、個人利用に留めるのがよいかと思います。
メリット
- このライブラリひとつで、HTMLの取得と解析ができる
-
BeautifulSoup
などを使う場合は、まずrequestsなどでHTMLを取得する必要がありました
-
- 覚えるメソッドが少なくてすむ
-
find
コマンドひとつで解析します
-
- 依存しているモジュールがない
使い方
まずはモジュールをインストール。
pip install gazpacho
チュートリアルで取り上げられている下記のサイトより、本のタイトルをスクレイピング、出力してみます。
from gazpacho import get, Soup
# 指定されたURLをもとに、HTMLを取得
html = get('https://scrape.world/books')
# 解析用のインスタンスをつくる
soup = Soup(html)
# 必要な要素を取得。複数見つかればList[Soup]を返す(単数の場合はSoup)
# 1つめの引数はHTMLタグ
# 2つめの引数はidやclassの指定
# 3つめの指定は部分一致を許すかどうか
# 例では、クラスが"book-"となっているので、"book-early"などがマッチする
books = soup.find('div', {'class': 'book-'}, partial=True)
for book in books:
name_header = book.find('h4')
# textフィールドにタグの中身が入っている
name = name_header.text
print(name)
まとめ
個人的には、下のような感じで使い分けています。
- 簡単なスクレイピング -> gazpachoを使う
- gazpachoでは難しい(※) -> selenium(chromedriver-library)BeautifulSoupを使ってなんとかやる
※とくに動的なサイトを指しています。
gazpachoはモジュール自体もシンプルなので、時間を見つけて読んでみようかなと思っています。
この記事を読んで使ってみる人が増えれば嬉しいです!