编辑:对于那些遇到同样问题的人来说,事实证明top_headlines不支持多个关键字,这是一个无赖。以下是多个关键字的工作代码,其中包含“所有内容”而不是“头条新闻”。
keywords = ["warriors", "spurs"]
url = ('https://newsapi.org/v2/everything?q=' + ' OR '.join(keywords)) + '&language=en' + '&apiKey=' + api_key + '&pageSize=100'
response = requests.get(url)
这会返回很多,因为,你知道,'一切'。查看'from'和'to'参数以限制返回。
OP从这里开始
我目前正在尝试从新闻聚合NewsAPI.org获取包含某些关键字的热门文章。
如果我只提供一个关键字,它可以完美运行,下面是示例代码:
keywords = ["trump"]
url = ('https://newsapi.org/v2/top-headlines?q=' + ','.join(keywords)) + '&language=en' + '&apiKey=' + api_key + '&pageSize=100'
response = requests.get(url)
for article in response.json()['articles']:
print(article['title'])
print(url)
print(response.json()['totalResults'])
但对于我的生活,我无法弄清楚如何将多个关键字传递给此请求。我已尝试加入列表的每个变体,它只是不会合作。
目标是能够在关键字列表中添加另一个字符串,例如:
keywords = ["trump","bitcoin"]
然后让代码返回包含特朗普或比特币的所有标题。我得到的最接近的是返回包含两个关键字的标题,但我不能让它返回其中一个。
我尝试用我能想象到的每一种策略加入这些字符串('+','','&','& q ='等),我无法理解。不知道该怎么办。有什么提示吗?
答案 0 :(得分:1)
News API documentation显示了为“Everything”端点执行此操作的方法:
此处支持高级搜索:
...
- 或者,您可以使用
AND
/OR
/NOT
关键字,并可选择将这些关键字与括号分组。例如:crypto AND (ethereum OR litecoin) NOT bitcoin
。
q
的完整值必须为网址编码。
“头条新闻”的文档中没有此类信息,这似乎暗示“顶级标题”端点不支持高级搜索。