1

このコードでサイトから画像を取得しようとしています:

image="http://the.site.com/view/ashx/Handler.ashx?Command=Avatar&TC=TQB"
curlobj = pycurl.Curl()
curlobj.setopt(pycurl.COOKIEFILE, '')
curlobj.setopt(pycurl.CONNECTTIMEOUT, 30)
curlobj.setopt(pycurl.TIMEOUT, 30)
curlobj.setopt(pycurl.FAILONERROR, True)
curlobj.setopt(pycurl.FOLLOWLOCATION, 1)
curlobj.setopt(pycurl.MAXREDIRS, 5)
imgf = open("logo.jpg", "wb")
curlobj.setopt(pycurl.URL, image)
curlobj.setopt(pycurl.WRITEDATA, imgf)
curlobj.perform()
imgf.close()
curlobj.close()

しかし、それは与えます:

python2`.6: src/pycurl.c:272: get_thread_state: Assertion `self->ob_type == p_Curl_Type' failed.`

何が問題ですか?

ありがとう

4

1 に答える 1

0

私のコードでこのエラーが発生したとき、curl/pycurl が既存の接続を再利用しないようにすることで修正できました。

c.perform() の前に c.setopt(c.VERBOSE , 1) を有効にすると、出力でより多くの (デバッグ) 情報が提供され、最初の数行で、最初に新しい接続を確立しているかどうかがわかります。 c.perform()。

于 2014-02-23T05:24:18.777 に答える