DataForSEO
DataForSeo 透過 API 提供全面的 SEO 和數位行銷數據解決方案。
DataForSeo API
從最受歡迎的搜尋引擎(如Bing
、Yahoo
)檢索SERP
。它還允許從不同的搜尋引擎類型(如Maps
、News
、Events
等)獲取 SERP。
本筆記本示範如何使用 DataForSeo API 來取得搜尋引擎結果。
%pip install --upgrade --quiet langchain-community
from langchain_community.utilities.dataforseo_api_search import DataForSeoAPIWrapper
API 參考:DataForSeoAPIWrapper
設定 API 憑證
您可以透過在 DataForSeo
網站上註冊來取得您的 API 憑證。
import os
os.environ["DATAFORSEO_LOGIN"] = "your_api_access_username"
os.environ["DATAFORSEO_PASSWORD"] = "your_api_access_password"
wrapper = DataForSeoAPIWrapper()
run 方法將從以下元素之一傳回第一個結果片段:answer_box、knowledge_graph、featured_snippet、shopping、organic。
wrapper.run("Weather in Los Angeles")
run
和 results
之間的差異
run
和 results
是 DataForSeoAPIWrapper
類別提供的兩個方法。
run
方法執行搜尋,並從答案框、知識圖譜、精選摘要、購物或自然搜尋結果中傳回第一個結果片段。這些元素依優先順序從高到低排序。
results
方法傳回根據封裝器中設定的參數配置的 JSON 回應。這在您想要從 API 傳回的資料方面提供了更大的彈性。
以 JSON 格式取得結果
您可以自訂您想要在 JSON 回應中傳回的結果類型和欄位。您還可以設定要傳回的頂級結果數量的上限。
json_wrapper = DataForSeoAPIWrapper(
json_result_types=["organic", "knowledge_graph", "answer_box"],
json_result_fields=["type", "title", "description", "text"],
top_count=3,
)
json_wrapper.results("Bill Gates")
自訂位置和語言
您可以透過將其他參數傳遞至 API 封裝器來指定搜尋結果的位置和語言。
customized_wrapper = DataForSeoAPIWrapper(
top_count=10,
json_result_types=["organic", "local_pack"],
json_result_fields=["title", "description", "type"],
params={"location_name": "Germany", "language_code": "en"},
)
customized_wrapper.results("coffee near me")
自訂搜尋引擎
您還可以指定您想要使用的搜尋引擎。
customized_wrapper = DataForSeoAPIWrapper(
top_count=10,
json_result_types=["organic", "local_pack"],
json_result_fields=["title", "description", "type"],
params={"location_name": "Germany", "language_code": "en", "se_name": "bing"},
)
customized_wrapper.results("coffee near me")
自訂搜尋類型
API 封裝器還允許您指定要執行的搜尋類型。例如,您可以執行地圖搜尋。
maps_search = DataForSeoAPIWrapper(
top_count=10,
json_result_fields=["title", "value", "address", "rating", "type"],
params={
"location_coordinate": "52.512,13.36,12z",
"language_code": "en",
"se_type": "maps",
},
)
maps_search.results("coffee near me")
與 Langchain Agents 整合
您可以使用 langchain.agents
模組中的 Tool
類別,將 DataForSeoAPIWrapper
與 langchain agent 整合。Tool
類別封裝了 agent 可以呼叫的函式。
from langchain_core.tools import Tool
search = DataForSeoAPIWrapper(
top_count=3,
json_result_types=["organic"],
json_result_fields=["title", "description", "type"],
)
tool = Tool(
name="google-search-answer",
description="My new answer tool",
func=search.run,
)
json_tool = Tool(
name="google-search-json",
description="My new json tool",
func=search.results,
)
API 參考:Tool