我想使用免费开发者帐户的 API 抓取推文。我对使用API进行抓取不太了解。
我用于抓取的代码是:
import tweepy
client = tweepy.Client(
consumer_key='aaa',
consumer_secret= 'aaa',
access_token='bbb',
access_token_secret='bbb'
)
client = tweepy.Client(consumer_key= consumer_key,consumer_secret= consumer_secret,access_token= access_token,access_token_secret= access_token_secret)
query = 'news'
tweets = client.search_recent_tweets(query=query, max_results=10)
for tweet in tweets.data:
print(tweet.text)
Unauthorized Traceback (most recent call last)
<ipython-input-27-cdd309f625b4> in <cell line: 12>()
10 client = tweepy.Client(consumer_key= consumer_key,consumer_secret= consumer_secret,access_token= access_token,access_token_secret= access_token_secret)
11 query = 'news'
---> 12 tweets = client.search_recent_tweets(query=query, max_results=10)
13 for tweet in tweets.data:
14 print(tweet.text)
2 frames
/usr/local/lib/python3.10/dist-packages/tweepy/client.py in request(self, method, route, params, json, user_auth)
96 raise BadRequest(response)
97 if response.status_code == 401:
---> 98 raise Unauthorized(response)
99 if response.status_code == 403:
100 raise Forbidden(response)
Unauthorized: 401 Unauthorized
Unauthorized
我尝试使用以下代码更新 API 的状态:
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
api.update_status("Hello Tweepy")
使用上述代码更新状态后,我再次运行推文搜索代码进行报废,但当我运行代码时,我收到一条错误消息。我不知道为什么会发生这种情况。我的开发者应用程序具有读取和写入权限生成的密钥。
任何人都可以指导我如何删除此错误并抓取推文吗?
抱歉,您无法使用 Twitter API 上的 Free Level Access 抓取推文(搜索推文)。
您可以在免费级别访问上使用管理推文和用户查找功能。
对于搜索推文功能,您必须升级到基本级别。
调用 Twitter API v2 的语法是:
# Authenticate to Twitter
client = tweepy.Client(
consumer_key=CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET,
access_token=ACCESS_TOKEN,
access_token_secret=ACCESS_TOKEN_SECRET
)
# Post Tweet
message = "Hello Twitter"
client.create_tweet(text=message)
# Search Recent Tweets (This requires Basic Level Access)
query = 'QUERY'
tweets = client.search_recent_tweets(query=query, max_results=10)
for tweet in tweets.data:
print(tweet.text)
在第二个代码片段中,您尝试调用 Twitter API v1.1,该 API 只能用于媒体上传。
为 Media Upload 调用 Twitter API v1.1 的正确语法是:
# Authenticate to Twitter
auth = tweepy.OAuth1UserHandler(
CONSUMER_KEY, CONSUMER_SECRET,
ACCESS_TOKEN, ACCESS_TOKEN_SECRET
)
# Create API object
api = tweepy.API(auth)
# Upload Image
media = api.media_upload("tweet_img.png")
欲了解更多信息:
https://developer.twitter.com/en/docs/twitter-api
https://docs.tweepy.org/en/v4.14.0/client.html#tweepy.Client.search_recent_tweets
我希望这有帮助。