概要 🔗
Google検索結果をプログラムで取得する方法は色々ありますが、一部有料のSearpApiを通じてデータを取得する
メモ 🔗
毎度適当に書いちゃいますが、configで検索キーワードを登録しておき、pythonでぶん回す感じで。
適当にtxtファイルに結果を格納してますが、普通にjsonパースして必要データを取り出したほうが楽。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import configparser, time, datetime
from serpapi import GoogleSearch
TODAY = datetime.datetime.today().strftime("%Y%m%d")
# configファイルに検索キーワードリストを格納する
cp = configparser.ConfigParser(converters = ('list': lambda x: [i.strip() for i in x.split(',')]))
cp.read('config.ini')
QUERYLIST = cp.getlist('DEFAULT', 'QUERYLIST')
for i, query in enumerate(QUERYLIST):
search = GoogleSearch(
{
"q": query,
"location": "Tokyo, Japan",
"hl": "ja",
"num": 100,
"device": "mobile",
"api_key": APIKEY})
result = search.get_dict()
filename = TODAY + '-' + str(i) + '.txt'
with open(filename, "w") as f:
f.write(str(result))
f.close()
|
config.ini
ファイルはキーワードのリストをカンマ区切りで入れる。APIKEYも一緒に管理してしまったほうが良いかな。
1
2
|
[DEFAULT]
QUERYLIST = query1,query2
|
出力したファイルから値を取り出す 🔗
テキストファイルにserpapi経由でデータを取得した場合、テキストファイルから検索結果を取得する場合はastを利用してパースしてデータを取り出す感じで。
1
2
3
4
5
6
7
8
|
import ast
output = []
with open(file) as f:
s = f.read()
data = ast.literal_eval(s)
for d in data['organic_results']:
output.append([file, d['link']])
|
参考 🔗