【发布时间】:2023-01-14 03:15:51
【问题描述】:
我正在使用 snscrape 从 Twitter 抓取数据。 1000 条推文通常需要 26 秒。我正在寻找使功能更快的方法。使用 numba 是否可以使 for 循环更快,或者我应该使用列表压缩或任何可用的硬件加速方法,还是不可能,因为 snscrape 通常很慢?任何帮助对我来说都是很好的。
def func():
query ="python"
tweets=[]
limit=10000
for tweet in sntwitter.TwitterSearchScraper(query).get_items():
if len(tweets) == limit:
break
else:
tweets.append([tweet.date,tweet.username,tweet.content])
return tweets
df = pd.DataFrame(func(),columns=['Date','User','Tweet'])
print(df)
【问题讨论】:
-
我假设您实际上没有进行任何检测,所以您实际上并不知道您的时间花在了哪里。没有这些信息,您只是在黑暗中拍摄。您似乎只是忽略了网络延迟。您每秒执行 40 个请求。您无能为力会使网络更快。您在这里不受 CPU 限制。你受 I/O 限制。