我正在使用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. 提取特定文本
- 12. JAR - 提取特定文件
- 13. 轉推特定推文
- 14. 僅使用R從特定位置提取推文和用戶
- 15. 只提取特定的子文件夾7zip
- 16. 從php中只提取特定的文件類型使用php
- 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) –