2014-04-11 109 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)。他们会让你抓住推文并将它们存储在数据库中,并进行任何你想做的分析。