【发布时间】:2014-04-11 04:40:21
【问题描述】:
我正在尝试为我的论文抓取推文。我正在使用 Pattern (http://www.clips.ua.ac.be/pages/pattern-web) 进行爬网(以及用于情绪分析),这需要运行 Python (2.7) 程序。
到目前为止,我已经能够提出您可以在下面找到的程序。它有效,但仅用于收集 X 数量的最新推文。
我的问题是:您能帮我实现,以便我可以抓取特定用户名的特定日期范围(例如:2014 年 1 月 1 日 - 2014 年 3 月 31 日)之间的推文吗?
(或者如果不可能,增加此时抓取的推文数量(对不同的用户名使用相同的程序(每个用户都有 1000 条推文),我得到的结果在 40 到 400 之间)。
非常感谢您!
(PS:如果以上都不可能,我很乐意听取替代方案来收集必要的推文。我应该补充一点,我没有很强的编程背景。)
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
【问题讨论】:
标签: python twitter web-crawler sentiment-analysis