Python:Twitter 流和 pycurl 问题

标签 python twitter pycurl

我在使用 pycurl 与 Twitter 的 Streaming API 过滤器流时遇到问题。 当我运行下面的代码时发生了什么,它似乎在执行调用时呕吐。我知道这一点是因为我在执行调用之前和之后放置了打印语句。我正在使用 Python 2.6.1,如果重要的话,我使用的是 Mac。

#!/usr/bin/python
print "Content-type: text/html"
print
import pycurl, json, urllib

STREAM_URL = "http://stream.twitter.com/1/statuses/filter.json?follow=1&count=100"
USER = "user"
PASS = "password"
print "<html><head></head><body>"


class Client:
    def __init__(self):
        self.buffer = ""
        self.conn = pycurl.Curl()
        self.conn.setopt(pycurl.POST,1)
        self.conn.setopt(pycurl.USERPWD, "%s:%s" % (USER,PASS))
        self.conn.setopt(pycurl.URL, STREAM_URL)
        self.conn.setopt(pycurl.WRITEFUNCTION, self.on_receive)

        try:
            self.conn.perform()
            self.conn.close()
        except BaseException:
            traceback.print_exc()

    def on_receive(self,data):
        self.buffer += data
        if data.endswith("\r\n") and self.buffer.strip():
            content = json.loads(self.buffer)
            self.buffer = ""
            print content
            if "text" in content:
                print u"{0[user][name]}: {0[text]}".format(content)

client = Client()

print "</body></html>"

最佳答案

首先,尝试打开详细程度以帮助调试:

    self.conn.setopt(pycurl.VERBOSE ,1)

您似乎没有设置基本身份验证模式:

    self.conn.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_BASIC)

此外,根据文档,您需要向 API 提供参数的 POST,而不是将它们作为 GET 参数传递:

    data = dict( track='stack overflow' )
    self.conn.setopt(pycurl.POSTFIELDS,urlencode(data))

关于Python:Twitter 流和 pycurl 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289038/

相关文章:

python - 带有 pycurl 的自定义 header

python - PyCurl 7.19.0 : get cookies from response using getinfo(pycurl. Cookie 列表)

python - 确定 a、b 中是否存在数字 n1、n2 和 c 中的 n3,使得 n1 + n2 = n3 [ftt,多项式乘法]

python - XOR 加密在*大部分*时间都有效

facebook - 用于与计数器共享按钮到 Facebook、Twitter 和 Buzz 的代码

python - 从 NLTK 中的 token 中删除 URL 特征

python - 使用 libcurl4 导入 pycurl 会引发 ImportError

javascript - json 数组,数组中返回错误?错误的字符串

python - 如何在 saltstack 中运行自定义模块

twitter - 获取 Twitter 主页时间线推文