1
/
5

【Python】スクレイピング

こんにちは、三橋です。

弊社では、ある業者の複数社のホームページにある情報をチェックするスクレイピングツールを作成しております。
今回スクレイピングがどのようなものなのか調べてみたらPythonで出来ることが分かったので調べて実施してみました。

スクレイピングとは

スクレイピングとは、Webページからデータを抽出するプロセスです。これは、ウェブスクレイピングとも呼ばれます。スクレイピングは、Webページからテキスト、画像、動画、価格情報、レビューなど、様々な情報を抽出することができます。スクレイピングには、プログラミング言語を使用してWebページのHTMLコードを解析し、必要なデータを抽出することが必要です。

Pythonで使用できる主なスクレイピング用ライブラリ一覧

  • BeautifulSoup4
  • Requests
  • Selenium

Python環境でBeautifulSoup4を使用できるようにする

pipコマンドでBeautifulSoup4をインストールします。

pip3 install beautifulsoup4

タグで指定してデータを抽出する

下記ソースを実行し「タイトル: Home - 株式会社クオリアシステムズ」と表示されれば成功です。

import requests
from bs4 import BeautifulSoup

url = 'https://qualias.jp/'

response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

#タイトルを取得
title = soup.title.string
print('タイトル:', title)
タイトル: Home - 株式会社クオリアシステムズ


class で指定してデータを抽出する

下記ソースを実行し「株式会社クオリアシステムズ」と表示されれば成功です。

import requests
from bs4 import BeautifulSoup

url = 'https://qualias.jp/'

response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

#タイトルを取得
title = soup.find(class_="hero-small-text").get_text()
print(title)
株式会社クオリアシステムズ


スクレイピング結果をExcelに貼り付ける

下記ソースを実行し「text.xlsx」がこのソースを配置している箇所に作成され、A列とB列に値が入力されれば完了です。

import requests
import re
import openpyxl
from bs4 import BeautifulSoup

# エクセルを開く
wb = openpyxl.Workbook()
sheet = wb.active
sheet .title = "スクレイピング結果"

url = 'https://qualias.jp/blog/'

response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

cnt = 1

#配列ループ
for a in soup.find_all("a"):
	data = str(a.string).rstrip()
	if data == "None":
		continue
	# シートの番号を決める
	sel1 = "A"+str(cnt)
	sel2 = "B"+str(cnt)
	sheet[sel1].value = data
	sheet[sel2].value = a.get("href")
	cnt += 1

# エクセルにデータを保存する
wb.save("text.xlsx")

wb.close()


上記のものを組み合わせてスクレイピングツールを作成していることがわかりました。
スクレイピングは効率的にWebサイトからデータを取得することが出来ます。

株式会社クオリアシステムズでは一緒に働く仲間を募集しています
1 いいね!
1 いいね!

今週のランキング