我正在尝试通过Premium API Sandbox从Twitter抓取数据。
我构建了30天的高级API沙箱,以下是我发送请求的代码。
from TwitterAPI import TwitterAPI
consumer_key = 'XXX'
consumer_secret = 'XXX'
access_token = 'XXX'
access_token_secret = 'XXX'
api = TwitterAPI(consumer_key, consumer_secret, access_token, access_token_secret)
r = api.request('tweets/search/30day/:test.json', {'q' : 'python') //test is my own label
for item in r:
print(item['text'])
但是,我一直收到错误代码403:
Traceback (most recent call last):
File "Twitter_api_srch_full.py", line 11, in <module>
for item in r:
File "/anaconda3/lib/python3.6/site-packages/TwitterAPI/TwitterAPI.py", line 206, in __iter__
return self.get_iterator()
File "/anaconda3/lib/python3.6/site-packages/TwitterAPI/TwitterAPI.py", line 193, in get_iterator
raise TwitterRequestError(self.response.status_code)
TwitterAPI.TwitterError.TwitterRequestError: Twitter request failed (403)
有人知道导致这种错误的潜在原因吗?
谢谢您的帮助:)
答案 0 :(得分:0)
您在Premium API搜索中使用Search API的q
参数。改为使用query
,如下所示:
r = api.request('tweets/search/30day/:test', {'query' : 'python'})
答案 1 :(得分:0)
您的代码中有几个问题:
.json
结尾TwitterAPI存储库中有一个sample,但是有一些作用:
from TwitterAPI import TwitterAPI
consumer_key = 'XXX'
consumer_secret = 'XXX'
access_token = 'XXX'
access_token_secret = 'XXX'
PRODUCT = '30day'
LABEL = 'development'
api = TwitterAPI(consumer_key, consumer_secret, access_token, access_token_secret)
r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), {'query' : 'python'})
for item in r:
print(item['text'])
答案 2 :(得分:0)
由于TwitterAPI并不是Twitter Premium和Enterprise API的官方Python包装器,因此我强烈建议您使用search-tweets-python,因为它是twitterdev版本。
接下来,要安装 search-tweets-python ,您可以通过以下命令通过PyPi进行安装:
<div class="pt-3">
<table>
<tr>
<td><img src="https://d1yjjnpx0p53s8.cloudfront.net/styles/logo-thumbnail/s3/062013/huawei_0.jpg"
width="96" height="48"></td>
<td><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/170px-Apple_logo_black.svg.png" width="96"
height="48"></td>
</tr>
</table>
</div>
<hr>
<table>ILX A-SPEC 4P L4 2.4L QC NAVI R18 AUT 5 OCUP</table>
<table>
<tr>
<td><button mat-button>
<mat-icon>check_box_outline_blank</mat-icon>
</button></td>
<td><button mat-button>
<mat-icon>check_box_outline_blank</mat-icon>
</button></td>
</tr>
</table>
<hr>
<table>ILX A-SPEC 4P L4 2.4L QC</table>
<table>
<tr>
<td><button mat-button>
<mat-icon>check_box_outline_blank</mat-icon>
</button></td>
<td><button mat-button>
<mat-icon>check_box_outline_blank</mat-icon>
</button></td>
</tr>
</table>
<hr>
您可以获取有关searchtweets PyPi package最新版本的更多信息。
安装后,您需要按照https://github.com/twitterdev/search-tweets-python/blob/master/examples/credential_handling.rst创建一个 .yaml 文件,在这种情况下,使用30天的SandBox搜索将如下所示:>
一旦创建了python -m pip install searchtweets
文件,就可以通过Python开始使用Premium Twitter API,您所用的代码或多或少像:
twitter_api_premium_credentials.yaml
如上面的代码所示,您正在导入需要使用的功能,以检索推文,使用凭证获取承载令牌,生成查询或规则有效载荷并获取推文。
>希望这对您有所帮助!