python - Twitter API 查询标签
问题描述
我正在尝试使用 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"}')
这似乎与#有关。我怎样才能解决这个问题?
解决方案
尝试:
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
转换回#
.
推荐阅读
- mongodb - 猫鼬没有像文档所说的那样投射
- android - Correlating with Firebase and Firestore
- node.js - 使用 vue.js 创建文本文件
- java - Benefits of Private Constructor - Singleton Design Pattern
- c# - How to create a asynchronous method in asp.net web API
- html - Why new line is added in HTML?
- xml - 在 xslt 1.0 中,如何使用 replace() 函数的替代方法
- linux - 在 neovim 中管道多行命令:非法字符 ^M
- python - 如何在 Python 中反转大型数据集的列
- java - thrift-client 的连接只有在这个客户端第一次启动后才会成功