如何在Bing Web Search API的搜索结果中排除特定网站?
解决方案
你可以直接在必应搜索的q(查询词)参数中使用原生负向站点过滤运算符,在请求发起阶段就告知必应服务端排除指定站点的结果,不需要后续遍历过滤。
具体语法为:在原有查询词末尾追加 -site:待屏蔽域名,多个待屏蔽域名依次追加即可。
以你需要屏蔽youtube.com、amazon.com的场景为例,修改后的请求参数如下:
params = { "mkt": "en-US", "setLang": "en-US", "textDecorations": False, "textFormat": "raw", "responseFilter": "Webpages", "q": "books to read this summer -site:youtube.com -site:amazon.com", "count": 20 } headers = { "Ocp-Apim-Subscription-Key": MY_APY_KEY_HERE, "Accept": "application/json", "Retry-After": "1", } response = requests.get(WEB_SEARCH, headers=headers, params=params, timeout=15) response.raise_for_status() search_data = response.json()
补充说明
- 支持精确屏蔽多级域名,比如需要屏蔽亚马逊日本站可添加
-site:amazon.co.jp规则 - 该语法为必应搜索原生能力,所有版本的Bing Web Search API均兼容,无需调整其他参数或额外申请权限
- 后续新增屏蔽站点仅需在
q参数末尾追加对应-site:xxx.com规则即可
内容的提问来源于stack exchange,提问作者Okroshiashvili
相关产品推荐
相关产品推荐

