我正在使用python 3.4,tweepy API将推文提取到文本文件,而不是只提取整个页面的源提取。如果有一种方法只能获取推文而不是整个源代码。只提取特定#hastag的推文
回答
推文格式化为JSON。所以在你的脚本中包含简单的JSON来对它们进行编码。 (顺便说一句,这是Python 2.7版,所以你将不得不做打印不同)
from tweepy.utils import import_simplejson
json = import_simplejson()
加载每个鸣叫与蟒蛇,确保数据[“实体] [”主题标签]字段不为空(所以它有一个包括hashtag)
data_temp = json.loads(data)
if data_temp['entities']['hashtags']:
tweet_text = data_temp["text"].encode('utf-8')
然后打印出来到文件
print(tweet_text, file=write_file)
这些只是片段,用这个家伙脚本来帮助你去和采购的tweet。大起大落对他说:https://github.com/bwbaugh/twitter-corpus
无法找到import_simplejson python模块,得到Name错误 –
应该在'实体' –
'实体中给出什么值'是一个包含'hashtags'的JSON值。你只是检查其中是否有值,表明推文中有一个hashtag。然后你保存来自data_temp的推文文本。 – wprins
Twitter的收益流API鸣叫对于给定字JSON格式进行跟踪。
from requests_oauthlib import OAuth1Session
twitter_session = OAuth1Session(consumer_key,client_secret=consumer_secret,resource_owner_key=access_token,resource_owner_secret=access_token_secret)
streaming_tweets_objects = twitter_session.post('https://stream.twitter.com/1.1/statuses/filter.json',data={'track':query_word },stream=True)
与#标签替换query_word您正在寻找..请注意,这也将返回如果主题标签出现在鸣叫文本而不是作为一个主题标签。 对于hashtag,您可以通过检查['entities'] ['hashtags'] ['text']中的存在来过滤结果。
迭代streaming_tweets_objects以获取推文及其元数据。
for tweet in r.iter_lines():
if tweet:
tweet_data = json.loads(tweet)
现在,您可以从推文数据json字符串中获取所需的所有标签。
- 1. 用特定的hastag抓取tweets?
- 2. 如何转推特定用户+某些#hastag w/Tweepy
- 3. Ionic Zip只提取特定文件夹
- 4. 在Mercurial推送/提取特定文件/文件夹
- 5. 如何提取R中特定时间段之间的推文?
- 6. 用时间戳提取特定用户的所有推文
- 7. TortoiseGit只提交特定的* .hex文件
- 8. Twitter API - 获取特定ID的推文
- 9. sourcecontrol - 只提取特定版本
- 10. 只从firebase提取特定数据
- 11. JAR - 提取特定文件
- 12. 提取特定文本
- 13. 转推特定推文
- 14. 仅使用R从特定位置提取推文和用户
- 15. 从php中只提取特定的文件类型使用php
- 16. 只提取特定的子文件夹7zip
- 17. 获取只有推特ID的tweet url
- 18. 你如何在推特中提及特定网址的所有推文?
- 19. Python脚本,推特推特转发特定推文
- 20. 获取转推特定推文的用户列表?
- 21. 只提交特定字段
- 22. 提取文本文件中特定行
- 23. 提取特定的文本行?
- 24. 提取特定格式的文本-perl
- 25. 提取特定位
- 26. 提取特定值
- 27. 从推特ID获取推文内容
- 28. 提取特定的JSON对象并推送到新对象
- 29. 获取推特转推的特定账户?
- 30. 读取用蟒蛇提取的推文
我们可以看到你的代码吗? – Oisin
那么你到目前为止尝试过什么?谨慎分享您的试验和错误代码? – Deusdeorum
API = tweepy.API(AUTH) alltweets = [] \t new_tweets = api.user_timeline(SCREEN_NAME = SCREEN_NAME,计数= 200) alltweets.extend(new_tweets) 最老= alltweets [-1] .ID - 1 而LEN(new_tweets)> 0: \t \t打印( “%S” %(最老的)) new_tweets = api.user_timeline(SCREEN_NAME = SCREEN_NAME,计数= 200,max_id =旧) alltweets.extend(new_tweets) 最老= alltweets [-1] .id - 1 print(“%s”%(len(alltweets))) outtweets = [[tweet.id_str,tweet.created_at,tweet.text.encode(“utf-8”)) ]用于所有人的推文] with open('%s_t weets.csv'%screen_name,'wb')as f: \t \t writer = csv.writer(f) –