0

WRITEFUNCTIONとWRITEDATAをオフにするにはどうすればよいですか?

pycurlを使用して、curlUtilというクラスを呼び出します。その中に、文字列を返すpageAsString(self、URL)があります。

これを行うには、WRITEFUNCTIONを設定します。今downloadFile(self、URL、fn、overwrite = 0)で、問題を引き起こすopenとself.c.Setopt(pycurl.WRITEFUNCTION、0)を実行します。Intは有効な引数ではありません。

次に、WRITEDATAが値を上書きするか、NOWRITEFUNCTIONの表彰があると想定しました。NOWRITEFUNCTIONが存在しなかったため、WRITEDATAを使用したところ、Pythonがクラッシュしました。

私はreboot()と呼ばれるクイック関数を作成しました。これは、curlを閉じて再度開き、resetを呼び出してデフォルト状態にします。pageAsStringとdownloadFileの両方で呼び出しますが、まったく問題ありません。しかし、私はカールを再初期化したくありません。私が設定したいくつかの特別なオプションがあるかもしれません。

WRITEFUNCTIONとWRITEDATAをオフにするにはどうすればよいですか?

4

1 に答える 1

2

writefunctionをオフにする代わりに使用すると、トラブルを大幅に減らすことができます。WRITEFUNCTIONを利用してpageAsStringを書き直したい場合があります。

例として:

from cStringIO import StringIO
c = pycurl.Curl()
buffer = StringIO()
c.setopt(pycurl.WRITEFUNCTION, buffer.write)
c.setopt(pycurl.URL, "http://example.com")
c.perform()
...
buffer.getvalue() # will return the data fetched.
于 2008-11-17T23:28:53.957 に答える