【问题标题】:Twitter API query hashtagTwitter API 查询标签
【发布时间】:2021-03-26 20:23:20
【问题描述】:

我正在尝试使用 twitter api 收集具有特定主题标签的推文数据。

我使用下面的python代码。

https://github.com/twitterdev/Twitter-API-v2-sample-code/blob/master/Recent-Search/recent_search.py

看起来确实有效。

但是,当我将第 14 行从

query = "from:twitterdev -is:retweet" 

query = "#apple"

它不再起作用了。 错误信息如下。

Exception: (400, '{"errors":[{"parameters":{"query":[""]},"message":"Invalid \'query\':\'\'. \'query\' must be a non-empty string"}],"title":"Invalid Request","detail":"One or more parameters to your request was invalid.","type":"https://api.twitter.com/2/problems/invalid-request"}')

这似乎与#有关。我该如何解决这个问题?

【问题讨论】:

    标签: python api twitter


    【解决方案1】:

    尝试:

    query = "%23apple"
    

    在 Twitter 的示例代码中,变量 query 用作 URL 的参数。 URL 的参数中不允许使用某些字符(如/?# 等)。

    网址https://api.twitter.com/2/tweets/search/recent?query=#apple 无效。 %23 是# 的编码值。 URL 将如下所示:https://api.twitter.com/2/tweets/search/recent?query=%23apple

    Twitter API 然后可以将%23 转换回#

    这里有深入的解释:https://www.w3schools.com/tags/ref_urlencode.ASP

    【讨论】:

      【解决方案2】:

      很难解决这里可能发生的问题。一些建议。

      1. 查看this page
      2. 在第 39 行,从 response.json() 中删除 .json() 并再次运行代码。完成此操作后,您可以在 Python 的交互式命令行中对代码进行故障排除。

      说清楚点,到你的终端,输入Python,然后一个一个加载你的函数(main()除外)。然后逐行浏览main()代码中的代码。运行json_response = connect_to_endpoint(url, headers) 后,您仍然应该得到一个错误,但是,您可以使用response.request 对象中的对象来查看发生了什么。比如做完上面的再运行...

      response = connect_to_endpoint(url, headers)
      

      ...然后您可以执行response.request.url 以打印发送到 Twitter 的完整 URL,并将其与上面链接的构建查询页面中的形式进行比较。

      请参阅第二个答案here 以获得可用内容的详细列表。您也可以(在运行response = connect_to_endpoint(url, headers) 之后)在终端中输入response.request.(包括两个句点),然后按几次shift 键,让终端打印这些选项。

      【讨论】:

      猜你喜欢
      • 2011-07-14
      • 2014-07-09
      • 2014-05-24
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      相关资源
      最近更新 更多