为了帮助我们的一位客户,我创建了一个脚本来使用 Python 从 Bing 网站管理员工具 API 中提取搜索查询统计信息,如下所示:
rq = requests.get(u"https://ssl.bing.com/webmaster/api.svc/json/GetQueryStats?apikey=%s&siteUrl=%s" % (bwt_api_key, bwt_site_url))
if rq.status_code == 200:
rs = json.loads(rq.text)
if "d" in rs.keys():
z = []
for ri in rs["d"]:
z.append([
datetime.fromtimestamp(int(re.search("/Date\\((.*)\\)/", ri["Date"]).group(1)) // 1000).strftime("%Y-%m-%d"),
ri["Query"],
ri["AvgClickPosition"] / 10,
ri["AvgImpressionPosition"] / 10,
ri["Clicks"],
ri["Impressions"]
])
除了命名约定和标准(我知道还有很多改进的空间,但这是一个简单的例子),我将 API 密钥作为bwt_api_key和 bwt_site_url 中的站点 URL传递,它可以工作。到目前为止,一切都很好。
问题是除了siteUrl之外,我没有发现此 API 方法 ( GetQueryStats )的其他参数的踪迹,并且为了能够加载历史数据,我需要传递某种日期,到目前为止,我没有运气。
我想知道是否可以指定此方法的开始日期和结束日期,或者至少指定一个日期来按日期过滤结果。另一件让我烦恼的事情是,我没有(显然)方法来对大结果进行分页(如果适用的话)。
现在,我只有一天的数据(我为上周五的博客激活了 Bing 网站管理员工具,因此,如果它的工作方式与 Google Search Console 相同,数据将在 48 小时后合并,因此查询因为它有 3 天的余量似乎是正确的),但我只得到 100 行数据,我不知道这是否只是因为我们的测试站点(博客)的流量很低,或者这只是一些限制API。老实说,我有点困惑……
最后,我想要做的是与我为 Google Search Console 执行的相同提取:搜索查询性能与 URL、查询、点击和印象。在我看来,GetQueryStats 是正确的方法,但我可能错了。你能帮我一把吗?