Bing网站管理员工具API与Python如何指定提取日期和分页索引?

2024-05-19 20:53:55 发布

您现在位置:Python中文网/ 问答频道 /正文

为了帮助我们的一位客户,我创建了一个脚本,使用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_键传递,并在bwt_site_URL中传递站点URL,它可以正常工作。到目前为止,一切顺利

问题是,除了siteUrl之外,我没有发现此API方法(GetQueryStats)的其他参数的踪迹,并且为了能够加载历史数据,我需要传递某种日期,到目前为止,我没有运气

我想知道是否可以为这个方法指定开始和结束日期,或者至少指定一个日期来按日期过滤结果。另一件让我恼火的事情是,我(显然)没有办法对大型结果进行分页(如果适用的话)

现在,我只有一天的数据(我在上周五为一个博客激活了Bing网站管理员工具,因此,如果它的工作方式与谷歌搜索控制台相同,那么数据要到48小时后才能整合,因此用3天的时间来查询它似乎是正确的)但是我只得到了100行数据,我不知道这是因为我们测试站点(一个博客)的流量很低,还是因为API的一些限制。老实说,我有点困惑

最后,我想做的是我为谷歌搜索控制台执行的相同提取:搜索查询性能与URL、查询、点击和印象。在我看来,GetQueryStats是正确的方法,但我可能错了。你能帮我一下吗


Tags: 工具数据方法apijsonurl网站管理员