0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Selenium と BeautifulSoup を触ってみた備忘録

Posted at

はじめに

先日、スクレイピングをする必要があり、初めてやってみました。

知識ゼロの状態で、一時的なコードはほとんど AI に生成してもらいながら進めました。

何も理解しないまま終わるのはもったいないと感じたので、結局なにがなにをしていたのかを備忘録として残します。

Selenium

Selenium はブラウザを自動操作するためのライブラリ。

Python からマウスやキーボード操作を自動で行えます。
driver はその操作対象となるブラウザです。

実際には以下のようなことをしていました。

# driverの用意
options = webdriver.ChromeOptions()
options.add_argument('--start-maximized')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

# ページを開く
driver.get(URL)

# 要素を取得
feed_list = driver.find_element(By.CLASS_NAME, "vw_feed_list")
articles = feed_list.find_elements(By.CSS_SELECTOR, "article.vw_feed_post")

# 要素をクリック
top_article = articles[0]
top_article.click()

BeautifulSoup

取得した HTML から欲しい部分だけを抜き出すためのライブラリ。

タグやクラス名、id を指定して要素を抽出しました。

例: divタグの一部分を抽出

html = driver.page_source
soup = BeautifulSoup(html, "html.parser")
modal = soup.find("div", id="modalPortal")

例: 日付の抽出

date_elem = soup.find("span", class_="time", id="dateTime")

感想

  • 流れとしては、ページを操作 → HTMLを取得 → 中身を解析する流れ
  • こうして分解してみると、案外むずかしくないと感じました
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?