Pythonで、ApacheからCGIを動かしてWEBスクレイピングする方法をご紹介します。
HTMLコード
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="/cgi-bin/test.py" method="POST">
<input type="submit" name="submit" value="送信">
</form>
</body>
</html>
htmlファイルを保存します。
htmlにはボタンを1つ設置します。
Pythonファイルとソースコード
#!C:\Users\Admin\AppData\Local\Programs\Python\Python39\python.exe
# -*- coding: utf-8 -*-
print('Content-type: text/html; charset=utf=8\n')
print("")
import cgi
import cgitb
import requests
from bs4 import BeautifulSoup
import re
cgitb.enable()
URL = "https://www.yahoo.co.jp/"
rest = requests.get(URL)
# ヤフーニュースを読み込む
soup = BeautifulSoup(rest.content, "html.parser")
elements = soup.find_all(href=re.compile("https://news.yahoo.co.jp/pickup/[0-9]+"))
#出力
for topic in elements:
print(topic.contents[0], " ", end="")
print(topic.attrs["href"])
サーバーの「Apache24/cgi-bin」に、「test.py」を保存します。
Webブラウザにスクレイピング結果を表示
スクレイピングするWEB画面
WEBサーバーに表示したスクレイピング結果
この記事が参考になりましたら幸いです。
【Python】ApacheからCGIを動かす:有効化の設定と動作
...