2014-04-11 102 views
1

我試圖抓取鳴叫我的論文。我正在使用Pattern(http://www.clips.ua.ac.be/pages/pattern-web)進行爬網(和情感分析),這需要運行Python(2.7)程序。抓取鳴叫

到目前爲止,我已經能夠拿出你可以在下面找到的程序。它的工作原理,但僅限於收集X最近的推文。

我的問題是:您是否可以幫助使它成爲特定用戶名的特定日期範圍(例如:2014年1月1日 - 2014年3月31日)之間的推文? (或者如果不行的話,增加此時抓取的推文數量(對不同的用戶名使用相同的程序(每個推文都有1000個推文),我會得到40到400之間任何結果))。

非常感謝您提前!

(附註:如果以上都不可能,我很樂意傾聽替代方案來收集必要的推文,我應該補充一點,我沒有很強的編程背景。)

import os, sys; sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..")) 
import time 
from pattern.web import Twitter, hashtags 
from pattern.db import Datasheet, pprint, pd 
from pattern.en import sentiment 

try: 
    table = Datasheet.load(pd("test.csv")) 
    index = set(table.columns[0]) 
except: 
    table = Datasheet() 
    index = set() 

engine = Twitter(language="en") 

prev = None 
for i in range(1000): 
    print i 
    for tweet in engine.search("from:username", start=prev, cached=False): 
      if len(table) == 0 or tweet.id not in index: 
      table.append([tweet.id, tweet.date, sentiment(tweet.text.encode("iso-8859-15", "replace"))]) 
      index.add(tweet.id) 
     prev = tweet.id 
    # sleep time to avoid search limit error (180 requests per 15min window) 
    time.sleep(5.1) 


table.save(pd("test.csv")) 

print "Total results:", len(table) 
print 

回答

0

而不是爬行我建議你使用Twitter的Streaming API ..因爲你會得到比爬行更多的推文。如果沒有達到流量限制的最高限額達到firehose的1%,幾乎所有的推文。也提供過濾器你可以使用它。

Python的模塊Twitter的流API的是: -

  • Twython
  • 嘰嘰喳喳
  • tweepy

等等

我用Twython。這很好。希望這可以幫助。

0

抓取推文並不是一個好方法,但只要Twitter不會阻止你的刮板,它就會起作用。我會推薦Twitter API(流媒體和搜索API)。他們會讓你抓住推文並將它們存儲在數據庫中,並進行任何你想做的分析。