LoginSignup
1
2

【Python】SeleniumでWeb情報を取得する。

Posted at

こんにちは、Mottyです。
久々のpython記事…SeleniumでサクッとWeb情報を取得する方法を記載します。

Seleniumの概要

SeleniumとはWebアプリケーションのブラウザ操作を自動化するためのテストフレームワークです。2004年にUIテストを自動化することを目的に開発されました。さまざまな言語に対応してます。(JavascriptやPowershellなどでも使えます。)
またSelenium IDEという総合開発環境も用意されています。こちらを利用すれば、機能テストの記録、編集、デバッグができたりします。

早速書いてみる

取得や操作には要素指定するので、DOMに関する知識が必要です。
大阪で開催されている個人参加型フットサルイベントの一覧を取得してみましょう。

Labola 大阪 個人参加型フットサル一覧

getlist.py
from xml.etree.ElementPath import xpath_tokenizer_re
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

browser = webdriver.Chrome()
url = 'https://labola.jp/reserve/events/search/personal/area-27/'
#ページングの表示機能がGETパラメーターに応じているため、5番目まで取得&繰り返し
for i in range(1,5):
    browser.get(url + "?page=" + str(i))

    #親要素を取得
    elements = browser.find_elements(By.XPATH,'//*[@id="event_list"]/li/a')
    print("★☆出力開始☆★")
    for element in elements:
        print("■□個サル会場□■")    
        #会場と日時を取得
        date = element.find_elements(By.CLASS_NAME,'date')[0]
        print(date.text)
        #募集状況を取得
        status = element.find_elements(By.CLASS_NAME,'apply')[0]
        print(status.text)
        print(" ")
    print("★☆出力完了☆★")
browser.close()

XX.PNG

抽出できました!
やはりXPATHは便利ですねb

終わりに

seleniumはバージョンアップ前後でかなり書き方が違うようですね( ゚Д゚)
便利になったのかも定かではないですし、書き換えるとなると面倒そうです・・・。

参考ページ

Selenium 概要
https://anken-hyouban.com/blog/2021/07/11/selenium/

XPATHについて
https://www.octoparse.jp/blog/essential-for-web-scraping-xpath-introduction

Seleniumを使って要素を見つける
https://kurozumi.github.io/selenium-python/locating-elements.html

1
2
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
1
2