3

私は自分のプロジェクトhttps://pypi.python.org/pypi/tidehunterに PycURL を利用してきました。これは、pycurl.WRITEFUNCTIONフックを利用して着信 HTTP ストリームを制御可能な方法で消費します。ユースケースは、プロジェクトページ、または次のようなテクニックで見つけることができます:

def _on_data_receive(self, data):
    self.buffer += data

    if data.endswith('\r\n'):  # or any valid chunk delimiter
        # Do something about self.buffer
        print self.buffer

    if True:  # some valid condition to disconnect
        return -1  # the way to stop the stream, would raise pycurl.error

ストリーム オンデマンドを終了するために使用しているソリューションはかなりハックであるため、PycURL からの切り替えを検討しています (PycURL を使用したそのユース ケースのより良いソリューションを得ることもできてうれしいです)。またrequests、使用するのがはるかに快適なライブラリです。

requests同じ目的を達成するために活用できるものはありますか?あるいは、調べなければならない着信ストリーム ハンドラーのようなものでもあるのかもしれません。

前もって感謝します。

4

1 に答える 1

1

EDIT 2016-03-22: わがままをお詫びします。

現在の回答

pycurl次のスニペットは、使用して完全に置き換えるために適用したものpython-requestsです。要するに、単純にstream=True引数を指定します。

import requests

def tide_on(url):
    r = requests.get(url, stream=True, **kwargs)

    for line in r.iter_lines():
        # wish to stop after consuming just one line
        print(line)
        break

    r.close()

前の「答え」

requests講演時の現在のバージョンでは、私が求めていたものを簡単に実装できました。後ろのチームに感謝しrequestsます!

バージョン 1.0 以降に完全に置き換えPycURLましrequestsたが、うまく機能しています。tidehunter

上記のすべてのコメントに再び感謝します:)

于 2014-01-23T04:26:01.340 に答える