2

このWRITEFUNCTIONが呼び出される回数を制限しようとしています。それができる方法はありますか?

書き込み関数の定義:

conn.setopt(pycurl.WRITEFUNCTION, on_receive)

助けてくれてありがとう!

4

1 に答える 1

1

これが動作するはずの汚い単純なバージョンです。より良い方法をテストして見つけるためにPycURLを構築します。

import pycurl, json

STREAM_URL = "http://chirpstream.twitter.com/2b/user.json"

USER = "segphault"
PASS = "XXXXXXXXX"

class LimitError(Exception): pass

counter = 0
limit = 10
def on_receive(data):
    global counter
    if counter < 10:
        print data
        counter += 1
    else:
        raise LimitError    
conn = pycurl.Curl()
conn.setopt(pycurl.USERPWD, "%s:%s" % (USER, PASS))
conn.setopt(pycurl.URL, STREAM_URL)
conn.setopt(pycurl.WRITEFUNCTION, on_receive)

try:
    conn.perform()
    print "Exited Normally"
except LimitError:
    print "Reached limit, exiting"
except pycurl.error:
    if counter == limit:
        print "pycurl expected error, nothing to worry about"
    else:
        raise
finally:
    conn.close()

print "All done"
于 2011-01-17T05:18:20.607 に答える