37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import requests
|
|
from typing import List, Dict
|
|
|
|
def bing_search(query: str, api_key: str, count: int = 3) -> List[Dict]:
|
|
"""
|
|
Perform a Bing Web Search using the Bing Search API.
|
|
|
|
Parameters
|
|
----------
|
|
query : str
|
|
The search query string.
|
|
api_key : str
|
|
Bing Search API key.
|
|
count : int, optional
|
|
Number of results to return (default is 3).
|
|
|
|
Returns
|
|
-------
|
|
List[Dict]
|
|
A list of dictionaries containing 'name', 'url', and 'snippet' for each result.
|
|
"""
|
|
endpoint = "https://api.bing.microsoft.com/v7.0/search"
|
|
headers = {"Ocp-Apim-Subscription-Key": api_key}
|
|
params = {"q": query, "count": count}
|
|
response = requests.get(endpoint, headers=headers, params=params, timeout=10)
|
|
response.raise_for_status()
|
|
data = response.json()
|
|
results = []
|
|
for item in data.get("webPages", {}).get("value", []):
|
|
results.append(
|
|
{
|
|
"name": item.get("name"),
|
|
"url": item.get("url"),
|
|
"snippet": item.get("snippet"),
|
|
}
|
|
)
|
|
return results |