【Python】ApacheからCGIで動かす:WEBスクレイピング

python-cgi-アイキャッチ Python

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を動かす:有効化の設定と動作
...