Skip to main content

DataForSeo API包装器 (DataForSeo API Wrapper)

这个笔记本演示了如何使用DataForSeo API包装器来获取搜索引擎结果。DataForSeo API允许用户从像Google、Bing、Yahoo这样的最流行的搜索引擎中检索SERP。它还允许从不同的搜索引擎类型(如地图、新闻、事件等)获取SERP。

from langchain.utilities.dataforseo_api_search import DataForSeoAPIWrapper

使用您的凭据设置API包装器 (Setting up the API wrapper with your credentials)

您可以通过在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")

runresults之间的区别 (The Difference Between runandresults``)

runresultsDataForSeoAPIWrapper类提供的两种方法。

run方法执行搜索并返回答案框、知识图、特色片段、购物或有机结果中的第一个结果片段。这些元素按优先级从高到低排序。

results方法返回根据包装器中设置的参数配置的JSON响应。这样可以更灵活地确定要从API返回的数据。

以JSON格式获取结果 (Getting Results as 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")

自定义位置和语言 (Customizing Location and Language)

您可以通过向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")

自定义搜索引擎 (Customizing the Search Engine)

您还可以指定要使用的搜索引擎。

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")

自定义搜索类型 (Customizing the Search Type)

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集成 (Integration with Langchain Agents)

您可以使用langchain.agents模块中的Tool类将DataForSeoAPIWrapper与langchain agent集成。Tool类封装了代理可以调用的函数。

from langchain.agents 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,
)