【问题标题】:Python - urllib2.HTTPError 400 bad requestPython - urllib2.HTTPError 400 错误请求
【发布时间】:2014-09-05 00:16:24
【问题描述】:

我正在学习如何访问 Twitter API,但是当我运行下面的简单代码时收到错误“urllib2.HTTPError: HTTP Error 400: Bad Request”:

import urllib2
import simplejson

url = "https://api.twitter.com/1.1/search/tweets.json?screen_name=twitterapi"

if __name__ == "__main__":
    req = urllib2.Request(url)
    opener = urllib2.build_opener()
    f = opener.open(req)
    json = simplejson.load(f)

    for item in json:
        print item.get("created_at")  # this will get the section that is "Created At from JSON"
        print item.get('text')        # this will get the text (in Twitter, a Tweet)

我不确定为什么 - 我已经用 Google 搜索过,但似乎找不到返回错误请求错误的原因。感谢您的帮助!

【问题讨论】:

  • 使用请求我得到"Bad Authentication data",这也是我在使用链接时看到的。我想你需要一个 api 密钥。
  • 我也这么认为,但似乎找不到有关所需 API 密钥的文档 - 环顾 here 它没有提到 API 密钥。我找到了this SO 线程,并查看了 Surpriya K 的回复,也许你会?或者,如果您正在做其他事情(oAuth 和 tweepy?我不确定消费者和访问令牌/密钥是什么)。
  • apps.twitter.com/app/new 这是您创建应用程序并获取 api 密钥等的地方。我不使用 api,但我确信必须有密钥。
  • @PadraicCunningham,谢谢。我创建了一个新应用程序并拥有一个 API 密钥,我将四处寻找如何使用它。
  • 这里有关于如何使用不同方法的信息dev.twitter.com/docs/auth

标签: python twitter simplejson


【解决方案1】:

您需要一个 API 密钥,来自 docs

"请注意,现在 API v1.1 要求请求必须是 已通过身份验证,请检查身份验证和授权“

使用 curl 快速测试:

$curl https://api.twitter.com/1.1/search/tweets.json?q=%40twitterapi
{"errors":[{"message":"Bad Authentication data","code":215}]}

所以,首先,你应该得到一个API Key。这里有一些额外的帮助:

【讨论】:

  • 谢谢 - 我创建了一个 API 密钥...但是我该从哪里开始呢?我确信答案就在那个文档中,但我还是新手,不知道该把这些信息放在哪里。
  • 要使用此 API 或任何其他 API,您应该发送命令。在 python 中,您可以使用 urllib2 或使用任何第三方库作为请求:gist.github.com/kennethreitz/973705 或者可能是专门的 Twitter 库:dev.twitter.com/docs/twitter-libraries
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多