https://programmablesearchengine.google.com/controlpanel/overview?cx=a0fb8aa014b61448d
https://developers.google.com/custom-search/v1/using_rest?hl=zh-cn
api 参数 https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list?hl=zh-cn#request
def google_search(query, api_key, search_engine_id, num_results=10):
# 构建请求 URL
url = "https://www.googleapis.com/customsearch/v1"
# 参数
params = {
'q': query, # 搜索查询
'key': api_key, # 您的 API 密钥
'cx': search_engine_id, # 您的搜索引擎 ID
'num': num_results # 返回的结果数量
}
proxy_address = 'http://192.168.3.122:7891'
proxies = {'http': proxy_address,
'https': proxy_address}
# 发送请求
response = requests.get(url, params=params, proxies=proxies)
result_items = []
# 检查请求是否成功
if response.status_code == 200:
# 解析 JSON 响应
results = response.json()
# return results.get('items', [])
try:
data = results
items = data.get("items", [])
for item in items:
result_items.append(
ResultItem(
title=item.get("title"),
link=item.get("link"),
snippet=item.get("snippet")
)
)
except json.JSONDecodeError:
print("Error decoding JSON response.")
result_items = []
return result_items
else:
print(f"Error: {response.status_code}")
print(response.text)
return []
# 示例使用
if __name__ == "__main__":
# 替换为您的 API 密钥和搜索引擎 ID
query = "Python programming"
search_results = google_search(query)
print_result_item_list(search_results)