【问题标题】:How can I have one keyword OR a different one in NewsAPI python?如何在 NewsAPI python 中有一个关键字或不同的关键字?
【发布时间】:2020-02-16 13:32:34
【问题描述】:

我使用的是 Python 3.X,带有 NewsAPI.org 的 API。我希望能够从关键字列表中找到具有关键字的新闻文章。我尝试将逗号放在 NewsAPI 网址的关键字部分,但这只会返回包含所有提到的关键字的文章。 这是我的代码:

url = ('https://newsapi.org/v2/everything?'
       'q=Google, Apple, Microsoft&'
       'sortBy=popularity&'
       'apiKey=API_KEY')
parser = html.parser.HTMLParser()
response = requests.get(url)

【问题讨论】:

    标签: python python-3.x api pypi


    【解决方案1】:

    HTTP 请求中的 OR 部分不依赖于 Python 或任何其他语言。

    根据newsapi's docs 支持高级搜索:

    • 用引号 (") 将短语括起来以实现精确匹配。
    • 必须在单词或短语前面加上 + 符号。例如:+比特币
    • 在词前添加不能出现 - 符号的词。例如:-比特币
    • 或者,您可以使用 AND / OR / NOT 关键字,并可以选择用括号对它们进行分组。例如:加密与(以太坊或 莱特币)不是比特币。

    我试过了,我认为它有效

    import requests
    
    url = 'https://newsapi.org/v2/everything'
    
    params = {'q': 'Google OR Apple OR Microsoft',
                    'sortBy':'popularity',
                    'apiKey': 'apiKey'
                   }
    
    response = requests.get(url,params=params)
    

    【讨论】:

    • 在上述参数中,如果我希望查询 'q' 是 'Google OR Apple OR Microsoft Windows' 而不是 'Google OR Apple OR Microsoft',我可以这样做吗,即是否执行此查询支持空格分隔的单词吗?
    • @vvvsss 我想是的。
    • @vvvsss https://newsapi.org/v2/everything?q=%22microsoft%20windows%20%22&apiKey=APIKEY 这对我只有 micorsoft windows 有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 2013-01-21
    相关资源
    最近更新 更多