无需 KYC — 无需 ID、无需自拍、无需文件。使用加密货币支付:BTC, USDT, USDC, ETH, SOL, LTC
语言: 简体中文
获取 API 密钥

文档 · 位置 · API v1

位置和语言:gl、hl、location、google_domain 和设备

四个参数决定你得到谁的结果:国家、界面语言、城市和设备。本页解释每个参数,并列出 25 个常见市场的代码。

最后更新: · 3 分钟阅读

快速回答

如何通过 SERP API 获取特定国家和城市的 Google 搜索结果?

使用 SerpCrypto 时,将 gl 设为国家代码,hl 设为语言,location 设为用 City, Region, Country 表示的城市,例如 Austin, Texas, United States。添加 device=mobile 可获取电话结果。每种组合都是一次查询,消耗 1 积分,起价 US$0.30/千次搜索,返回结果会回显所应用的设置。加密货币支付,无需 KYC。

每个位置参数有什么作用?

国家(gl)、语言(hl)、Google 域名和城市级位置字符串,支持桌面端或移动端.

参数默认值作用
glus搜索结果所在的国家。两位字母,ISO 3166-1,小写。英国用 gb。
hlen界面语言:标签、People Also Ask 以及部分摘要会跟随该语言。
location无国家内的精确地点,用于本地包和城市级排名。
google_domaingl 的域名由哪个 Google 域名执行搜索,例如 google.de。对 Bing 无效。
devicedesktopdesktop 或 mobile:两者的布局和本地块不同。

gl、hl 和 location 之间有什么区别?

gl 表示你想要哪个国家的结果。hl 表示用户阅读的语言,这会改变界面,通常也会改变问题和摘要。location 将国家缩小到某个城市或地区,只要查询带有本地意图就很重要。

它们可以自由组合。身在瑞士的法语用户是 gl=ch、hl=fr。来自柏林的英语搜索是 gl=de、hl=en、location=Berlin, Berlin, Germany。保持 gl 与 location 的国家一致:一个国家的城市配上另一个国家的 gl,会得到任何真实访客都看不到的结果。

如何定位到某个城市?

用英文书写地点,从最小单位到最大单位:City, Region, Country。示例:Austin, Texas, United States、Manchester, England, United Kingdom、Munich, Bavaria, Germany、Lyon, Auvergne-Rhone-Alpes, France。使用城市名称,而不是街道或邮编。

检查回答中的 search_parameters.location:它显示实际应用的地点。无法使用的值会返回 400 invalid_parameter,不消耗任何费用,因此可以低成本地测试一组地点。

curl + jq:两个城市中同一查询的本地包
# The same query from two cities: compare the local packs
for city in "Austin, Texas, United States" "Denver, Colorado, United States"; do
  curl -sG "https://serpcrypto.com/api/v1/search" \
    -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
    --data-urlencode "q=emergency plumber" \
    --data-urlencode "location=$city" \
    -d gl=us -d hl=en -d device=mobile \
    | jq -r --arg city "$city" '.local_results[]? | "\($city)\t\(.position)\t\(.title)"'
done

常见市场应该用哪些代码?

25 个常用市场。google_domain 默认取 gl 的域名,因此很少需要设置。

国家gl典型 hlGoogle 域名
美国usengoogle.com
英国gbengoogle.co.uk
加拿大caen、frgoogle.ca
澳大利亚auengoogle.com.au
爱尔兰ieengoogle.ie
新西兰nzengoogle.co.nz
德国dedegoogle.de
法国frfrgoogle.fr
西班牙esesgoogle.es
意大利ititgoogle.it
荷兰nlnlgoogle.nl
瑞士chde, fr, itgoogle.ch
波兰plplgoogle.pl
瑞典sesvgoogle.se
土耳其trtrgoogle.com.tr
巴西brpt-BRgoogle.com.br
墨西哥mxesgoogle.com.mx
阿根廷aresgoogle.com.ar
印度inen,higoogle.co.in
日本jpjagoogle.co.jp
韩国krkogoogle.co.kr
印度尼西亚ididgoogle.co.id
越南vnvigoogle.com.vn
新加坡sgengoogle.com.sg
南非zaengoogle.co.za

语言代码就是 Google 界面使用的那些;对于双语国家,选择你的受众阅读的语言。

我应该使用哪个 Google 域名?

通常不需要:不传 google_domain,API 就会使用上方表格中 gl 国家的域名。只有要复现某个特定设置时才设置它,例如 google.com 搭配 gl=gb。

仅凭域名并不能确定结果的所属国家。gl 和 location 起主要作用,因此响应会在 search_parameters 中记录这三项。

移动端和桌面端的结果会有差异吗?

通常会有。移动端页面可能会以不同顺序排列区块、为附近意图显示更多本地结果,并把摘要截得更短。如果你的访客大多使用手机,就追踪 device=mobile;要全面了解,就两者都追踪,并在每条排名中记录设备。

每种设备都是一次独立的搜索,因此两者都追踪会使这些关键词的积分翻倍。按 100,000 次搜索 积分包的 US$0.56/千次搜索,1,000 个关键词在两种设备上追踪 30 天会用掉 60,000 次查询。

如何在一个脚本中比较多个国家?

遍历一个市场列表,并保留 API 实际应用的内容。下面的 Python 示例把一条查询发往三个国家,每个国家各带一个城市,并打印所用的域名和第一个链接。

Python:一次查询,三个市场
import os

import requests

MARKETS = [
    {"gl": "de", "hl": "de", "location": "Munich, Bavaria, Germany"},
    {"gl": "fr", "hl": "fr", "location": "Lyon, Auvergne-Rhone-Alpes, France"},
    {"gl": "br", "hl": "pt-BR", "location": "Curitiba, State of Parana, Brazil"},
]

for market in MARKETS:
    r = requests.get(
        "https://serpcrypto.com/api/v1/search",
        params={"q": "running shoes", **market},
        headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
        timeout=60,
    )
    r.raise_for_status()
    applied = r.json()["search_parameters"]
    top = r.json().get("organic_results", [])[:1]
    print(applied["gl"], applied.get("google_domain"), [x["link"] for x in top])

Bing 接受相同的参数吗?

对 q、gl、hl、device 和 page 是:在 engine=bing 中使用相同的代码。google_domain 不适用于 Bing,会被忽略。返回结果的框架相同,包含 organic_results 和 related_searches;使用场景见 Bing 页面。

位置相关问题

我可以按 ZIP 码或 GPS 坐标搜索吗?

版本 1 不支持。location 接受城市级地名。如需获取地图上某点附近的结果,请使用 engine=google_maps,并在查询中指明该区域,例如 dentist Brooklyn。

为什么 gl=de 时返回的是英文标签?

因为 hl 默认为 en。同时设置 hl=de,才能获得德国本地用户看到的德语界面、问题和标签。

位置会影响单次搜索的价格吗?

不会。每次搜索都花费 1 积分,无论国家、城市、语言或设备。预付的搜索积分永不过期:未使用的查询会一直留在你的账户中,直到你使用它们。

英国的代码是哪个?

使用 gb,即其 ISO 3166-1 代码。对应的 Google 域名是 google.co.uk,当 gl=gb 时 API 会为你选择该域名。

起价 US$0.30/千次搜索 · 无需 KYC

获取 API 密钥