【发布时间】:2020-11-03 06:33:41
【问题描述】:
我对 Python 比较陌生。我有这段代码,它使用 Hashtags 从 Twitter 中提取数据并将它们保存在 CSV 文件中。它在 Python 2.7 中运行良好,但是当我尝试在 Python 3 中运行它时,它给了我TypeError: a bytes-like object is required, not 'str',如下所示:
import json
import csv
import tweepy
import re
"""
INPUTS:
consumer_key, consumer_secret, access_token, access_token_secret: codes
telling twitter that we are authorized to access this data
hashtag_phrase: the combination of hashtags to search for
OUTPUTS:
none, simply save the tweet info to a spreadsheet
"""
def search_for_hashtags(consumer_key, consumer_secret, access_token, access_token_secret, hashtag_phrase):
#create authentication for accessing Twitter
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
#initialize Tweepy API
api = tweepy.API(auth)
#get the name of the spreadsheet we will write to
fname = '_'.join(re.findall(r"#(\w+)", hashtag_phrase))
#open the spreadsheet we will write to
with open('%s.csv' % (fname), 'wb') as file:
w = csv.writer(file)
#write header row to spreadsheet
w.writerow(['timestamp', 'tweet_text', 'username', 'all_hashtags', 'followers_count'])
#for each tweet matching our hashtags, write relevant info to the spreadsheet
for tweet in tweepy.Cursor(api.search, q=hashtag_phrase+' -filter:retweets', \
lang="en", tweet_mode='extended').items(100):
w.writerow([tweet.created_at, tweet.full_text.replace('\n',' ').encode('utf-8'), tweet.user.screen_name.encode('utf-8'), [e['text'] for e in tweet._json['entities']['hashtags']], tweet.user.followers_count])
consumer_key = input('Consumer Key ')
consumer_secret = input('Consumer Secret ')
access_token = input('Access Token ')
access_token_secret = input('Access Token Secret ')
hashtag_phrase = input('Hashtag Phrase ')
if __name__ == '__main__':
search_for_hashtags(consumer_key, consumer_secret, access_token, access_token_secret, hashtag_phrase)
【问题讨论】:
-
感谢您的回复。我认为确实如此。但不幸的是,我现在又遇到了另一个错误:ibb.co/qpBJkNs(单击链接查看错误)。请看看您是否能够理解问题所在。
-
看看here.
标签: python python-3.x twitter data-extraction