如何获取wikipedia.search()返回结果的长度?
获取Wikipedia搜索结果长度及总结果数
获取当前返回结果的长度
要拿到wikipedia.search()返回结果的长度,只需将结果存入变量后用len()函数计算:
import wikipedia query = input("What do you want to lookup? ") results = wikipedia.search(query) print(len(results)) # 输出当前返回的结果数量
获取查询对应的总搜索结果数
wikipedia.search()默认只返回前10条结果,它本身不提供总结果数,但可以通过MediaWiki API获取匹配该查询的条目总数。以下是两种实现方式:
方式1:利用wikipedia库内置接口
import wikipedia def get_total_search_hits(query): params = { 'action': 'query', 'list': 'search', 'srsearch': query, 'format': 'json' } api_response = wikipedia._wiki_request(params) return api_response['query']['searchinfo']['totalhits'] query = input("What do you want to lookup? ") total_hits = get_total_search_hits(query) print(f"总搜索结果数:{total_hits}")
这里调用了库内部的_wiki_request方法请求MediaWiki API,返回的totalhits字段即为总匹配条目数。
方式2:直接用requests请求API
如果担心内部方法的兼容性问题,也可以直接用requests库调用API:
import requests def get_total_search_hits(query): api_url = "https://en.wikipedia.org/w/api.php" params = { 'action': 'query', 'list': 'search', 'srsearch': query, 'format': 'json' } response = requests.get(api_url, params=params).json() return response['query']['searchinfo']['totalhits'] query = input("What do you want to lookup? ") total_hits = get_total_search_hits(query) print(f"总搜索结果数:{total_hits}")
内容的提问来源于stack exchange,提问作者ConfusedDetermination
相关产品推荐
相关产品推荐

