LoginSignup
2
4

More than 3 years have passed since last update.

BeautifulSoupより気軽に使えるスクレイピング用モジュール「ガスパチョ」

Posted at

最近知った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)

まとめ

個人的には、下のような感じで使い分けています。

  1. 簡単なスクレイピング -> gazpachoを使う
  2. gazpachoでは難しい(※) -> selenium(chromedriver-library)BeautifulSoupを使ってなんとかやる

※とくに動的なサイトを指しています。

gazpachoはモジュール自体もシンプルなので、時間を見つけて読んでみようかなと思っています。

この記事を読んで使ってみる人が増えれば嬉しいです!

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4