【发布时间】:2015-04-27 08:12:58
【问题描述】:
我有一个获取推文的 Python 脚本。在脚本中,我使用库 Tweepy 。我使用有效的身份验证参数。运行此脚本后,一些推文存储在我的 MongoDB 中,一些推文被 if 语句拒绝。但我仍然得到错误
requests.packages.urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(0 bytes read, 2457 more expected)'
我的问题是我可以改进脚本的哪一部分,所以我没有收到上面的错误。
这是我的脚本
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import time
import json
from pymongo import MongoClient
#Mongo Settings
client = MongoClient()
db = client.Sentiment
Tweets = db.Tweet
#Twitter Credentials
ckey ='myckey'
csecret ='mycsecret'
atoken = 'myatoken'
asecret = 'myasecret'
class listener(StreamListener):
def on_data(self, data):
try:
tweet = json.loads(data)
if tweet["lang"] == "nl":
print tweet["id"]
Tweets.insert(tweet)
return True
except BaseException, e:
print 'failed on_date,', str(e)
time.sleep(5)
def on_error(self, status):
print status
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter( track=["geld lenen"
,"lening"
,"Defam"
,"DEFAM"
,"Credivance"
,"CREDIVANCE"
,"Alpha Credit"
,"ALPHA CREDIT"
,"Advanced Finance"
,"krediet"
,"KREDIET"
,"private lease"
,"ing"
,"Rabobank"
,"Interbank"
,"Nationale Nerderlanden"
,"Geldshop"
,"Geldlenen"
,"ABN AMBRO"
,"Independer"
,"DGA adviseur"
,"VDZ"
,"vdz"
,"Financieel Attent"
,"Anderslenen"
,"De Nederlandse Kredietmaatschappij"
,"Moneycare"
,"De Financiele Makelaar Kredieten"
,"Finanplaza"
,"Krediet"
,"CFSN Kredietendesk"
,"De Graaf Assurantien en Financieel Adviseurs"
,"AMBTENARENLENING"
,"VDZ Geldzaken"
,"Financium Primae"
,"SNS"
,"AlfamConsumerCredit"
,"GreenLoans"
], languages="nl"
)
希望你能帮帮我……
【问题讨论】:
标签: python mongodb twitter tweepy