引言
在数据分析和市场研究领域,Twitter(现在的X)数据一直是重要的信息来源。但是,自从Twitter更改API定价策略后,获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。
为什么需要Twitter数据?
1. 市场分析
- 品牌声誉监控
- 竞品分析
- 用户情感分析
- 市场趋势预测
2. 学术研究
- 社会行为研究
- 舆情分析
- 网络传播研究
3. 商业应用
- 用户画像分析
- 营销策略优化
- 竞争对手监控
- 潜在客户发掘
Apify平台上的Twitter数据采集Actor
用到下面这个API
主要功能
- 搜索推文 看着代码很长,其实核心就两行,拼装参数+调用HTTP接口。
这个API非常强大,因为能够支持按照任意检索条件搜索推文。具体支持的检索条件可以参考这篇文章。https://github.com/igorbrigadir/twitter-advanced-search
python
import time
import traceback
#from apify_client import ApifyClient
import requests
#可以在这里找到apify的token https://console.apify.com/settings/integrations
apify_token ="apify_api_sXPOOXXXXXXXXXXXXXXX"
#
tweet_scraper_url = f'https://api.apify.com/v2/acts/kaitoeasyapi~twitter-x-data-tweet-scraper-pay-per-result-cheapest/run-sync-get-dataset-items?token={apify_token}'
import time
import traceback
#from apify_client import ApifyClient
import requests
apify_token ="apify_api_xxxxxxxx"
#在这个页面找到你的 apify_token https://console.apify.com/settings/integrations
tweet_scraper_url = f'https://api.apify.com/v2/acts/kaitoeasyapi~twitter-x-data-tweet-scraper-pay-per-result-cheapest/run-sync-get-dataset-items?token={apify_token}'
def get_tweet_from_apify():
headers = {'Content-Type': 'application/json'}
data = {
"-min_faves": 0,
"-min_replies": 0,
"-min_retweets": 0,
"filter:blue_verified": False,
"filter:consumer_video": False,
"filter:has_engagement": False,
"filter:hashtags": False,
"filter:images": False,
"filter:links": False,
"filter:media": False,
"filter:mentions": False,
"filter:native_video": False,
"filter:nativeretweets": False,
"filter:news": False,
"filter:pro_video": False,
"filter:quote": False,
"filter:replies": False,
"filter:safe": False,
"filter:spaces": False,
"filter:twimg": False,
"filter:verified": False,
"filter:videos": False,
"filter:vine": False,
"include:nativeretweets": False,
"lang": "en",
"maxItems": 19,
"min_faves": 0,
"min_replies": 0,
"min_retweets": 0,
"queryType": "Top",
"since": "2024-11-23_16:16:50_UTC",
"twitterContent": "\"Al Roker\""
}
response = requests.post(tweet_scraper_url, headers=headers, json=data,timeout=50)
if response.status_code == 201:
resp_json = response.json()
print(f"call apidojo~tweet-scraper begin .req:{data},resp:{resp_json}")
if isinstance(resp_json, list) and len(resp_json) > 0 and 'noResults' in resp_json[0]:
return []
else:
return resp_json
else:
print(f"call fail resp code is :{response.status_code}")
return []
if __name__ == "__main__":
tweets = get_tweet_from_apify()
print(f"tweets:{tweets}")
- 获取用户信息 就不在这里赘述了,很简单。
价格优势
- 每1000条推文仅需$0.25
- 按使用量付费,无月租
- 无最低消费要求
技术特点
- 高性能
- 自动错误重试
- 并发请求处理
- 智能速率限制
- 易用性
- RESTful API
- 详细的API文档
- 多种编程语言支持
实际应用案例
1. 加密货币市场分析
监控特定钱包地址的讨论
tweets = get_tweets("0x1234...")
sentiment = analyze_sentiment(tweets)
2. 品牌监控
追踪品牌提及
brand_mentions = get_tweets("@brand_name")
analyze_mentions(brand_mentions)
3. 竞品分析
分析竞争对手的用户互动
competitor_data = get_user_profile("competitor")
analyze_engagement(competitor_data)
使用教程
1. 注册Apify账号
- 访问Apify官网
- 创建免费账号
- 获取API token
2. 调用API
3. 处理数据
数据清洗
结构化处理
存储数据
pass
总结
通过使用Apify平台上的Twitter数据采集Actor,我们可以经济高效地获取Twitter数据,进行各种分析和研究。这为企业和研究机构提供了一个可靠的数据来源。
最近在做一个基于社媒分析的小工具,找了很多方案去抓twitter的数据,最开始甚至想用Twitter的官方API,一个月200美金....搞了三个月,有点烧钱。然后尝试找替代方案,朋友介绍了Apify这个网站。上面也有很多Twitter的Actor,最后发现这个价钱最便宜,稳定性质量也很好。宝藏!
参考资料
- Apify官方文档
- Twitter API文档
- 数据分析最佳实践指南