\

PythonはWebスクレイピングに非常に便利な言語です。ライブラリが充実しているため、簡単にWeb上のデータを取得することができます。今回はPythonで可能な2種類のスクレイピングの手法についてまとめてみました。

静的なHTMLからデータを取得する(BeautifulSoup4)

Pythonにおけるスクレイピングといえば、BeautifulSoupライブラリによる手法が最も一般的です。この手法は、取得先のサイトが静的なHTMLである場合やサーバー側の動的なHTML出力である場合に有効な手法です。

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import urllib.request as req

# 通貨設定
crypto = 'BTC'
currency = 'JPY'

# 価格の取得先
url = 'https://coinyep.com/ja/ex/' + crypto + '-' + currency

# 取得結果
current_value = ''

# 取得先URLにアクセス
res = req.urlopen(url)

# 対象を抽出
soup = BeautifulSoup(res, 'html.parser')
values = soup.select_one("#coinyep-reverse1").findAll(text=True)
current_value = str(''.join(values))
current_value = current_value.replace('1 ' + crypto + ' = ', '')
current_value = current_value.replace(' ' + currency, '')

# 取得結果
print('1' + crypto + '(' + currency + '): ' + str(current_value))

動的にJavaScriptで出力されるHTMLのデータを取得する(Selenium & ChromeDriver)

動的にJavaScriptで出力されるHTMLのデータを取得するためには、SeleniumライブラリとChromeDriverを使用します。Seleniumはブラウザを自動制御するためのツールで、JavaScriptで描画されたページからデータを取得することが可能です。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://news.yahoo.co.jp/')

headlines = driver.find_elements_by_css_selector('#uamods-topics > div > div > div > ul a')
for headline in headlines:
    print(headline.text)

以上、PythonとJavaScriptを用いたWebスクレイピングについての基本的な手法を紹介しました。これらの手法を組み合わせることで、様々なWebサイトから情報を取得することが可能となります。ただし、スクレイピングを行う際には、対象のWebサイトの利用規約を遵守し、適切な方法で行うことが重要です。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です