urllib2 HTTP 错误 429

2023-11-25

所以我有一个 sub-reddits 列表,我使用 urllib 来打开它们。当我仔细检查它们时,最终 urllib 失败了:

urllib2.HTTPError: HTTP Error 429: Unknown

经过一些研究,我发现 reddit 通过 IP 限制对其服务器的请求量:

每两秒发出的请求不得超过一个。对于突发请求有一定的限度,但要保持理智。一般来说,一分钟内的请求数不要超过 30 个。

所以我想我会用time.sleep()将我的请求限制为每 10 秒一页。这最终也以失败告终。

上面的引用摘自红迪API页。我没有使用 reddit API。此时我在想两件事。该限制要么仅适用于 reddit API,要么 urllib 也有限制。

有谁知道这是这两件事中的哪一件吗?或者我该如何解决这个问题?


From https://github.com/reddit/reddit/wiki/API:

许多默认的用户代理(例如“Python/urllib”或“Java”)受到极大限制,无法鼓励独特且描述性的用户代理字符串。

这也适用于常规请求。发出请求时,您需要提供自己的用户代理标头。

#TODO: change user agent string
hdr = { 'User-Agent' : 'super happy flair bot by /u/spladug' }
req = urllib2.Request(url, headers=hdr)
html = urllib2.urlopen(req).read()

但是,这将为每个请求创建一个新连接。我建议使用另一个能够重用连接的库,httplib or Request, 例如。它将减轻服务器的压力并加快请求速度:

import httplib
import time

lst = """
science
scifi
"""

hdr= { 'User-Agent' : 'super happy flair bot by /u/spladug' }
conn = httplib.HTTPConnection('www.reddit.com')
for name in lst.split():
    conn.request('GET', '/r/'+name, headers=hdr)
    print conn.getresponse().read()
    time.sleep(2)
conn.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

urllib2 HTTP 错误 429 的相关文章

随机推荐

  • Android Fragment 导航和 Backstack

    我有一个标题栏 有点像菜单 和 4 个片段 MAIN A B C 其中 MAIN 应该是用于 backstack 的 main root 片段 我遇到的问题是当用户通过菜单进入例如 MAIN gt A gt B gt C 时 如果我只是使用
  • Android Studio 无法找到有效的 Jvm(与 MAC OS 相关)

    我无法在 Mac OS 10 10 1 Yosemite 上启动 Android Studio 进行 Android 开发 打开应用程序包安卓工作室在 Finder 中 然后编辑信息表文件 更改关键 JVM 版本 将 1 6 改为 1 6
  • CMake:如何为头文件设置COMPILE_FLAGS?

    我已经成功使用CMake构建了共享库 但大小不太好 我已经尝试过几个编译标志来减少大小等 set source files properties TARGET SOURCE FILES PROPERTIES COMPILE FLAGS fe
  • 当 import_array 不在同一翻译单元中时出现段错误

    我在正确初始化 NumPy C API 时遇到问题 我想我已经将问题与调用隔离了import array来自不同的翻译单位 但我不知道为什么这很重要 最小工作示例 header1 hpp ifndef HEADER1 HPP define
  • 将 WAR 文件部署到 Jboss EAP 6.0(在 JBOSS AS 7.1 下工作)时出错

    我们正在开发使用 Jboss Spring 和 Hibernate 构建的新系统 目前我们正在从 AS 7 1 迁移到 EAP 6 0 由于我们未知的原因 部署到 EAP 6 0 服务器时部署失败 但在 AS 7 1 下工作得很好 在我们的
  • 我可以使用 Google Visualization API 在应用脚本中查询电子表格吗?

    我有一个包含大约 3000 行数据 大约 30 列 的 Google 电子表格 数据以标准方式布局 包含列标题和每个数据项一行 这些数据代表各种学术课程中使用的案例研究和文章 并且数据集始终在增长 我需要根据指定的参数搜索 查询数据 例如
  • Meteor template.find 未定义

    我正在尝试使用template find让我的生活更轻松 但在 javascript 控制台中我得到 undefined is not a function 这就是我所拥有的 它被绊倒了template find Template supe
  • 我们可以在 perl 脚本中获取 shell 脚本吗

    我们可以在 perl 脚本中获取 shell 脚本吗 例子 方案一 cat test1 sh bin ksh DATE bin date 方案2 cat test2 sh bin ksh test1 sh echo DATE 方案3 cat
  • 为什么 printf 对浮点数进行四舍五入?

    我正在尝试使用打印一些浮点数printf 例如 int main printf 1f 76 75 return 0 Output 76 8 我对结果有一些疑问 首先 为什么没有打印出来76 7 其次 这个数字是如何四舍五入的 C99 7 1
  • 在 apply 内使用 ifelse

    我试图在数据集中创建一个新列 根据预先存在的列的输入 为每一行提供一个输出 在此输出列中 我希望 NA if给定行中的任何输入值都是 0 否则 如果没有一个输入为 0 我希望该行的输出是输入的唯一值的数量 我认为解决方案将使用ifelse嵌
  • 更改 JAX-WS 服务 URL

    创建 JAX WS Web 服务时是否可以更改 Web 服务 URL 自动 URL 为 在 Glassfish 3 上 http
  • Xcode Instruments 错误:“分配跟踪库未及时加载”

    安装 Xcode5 包时出现问题 我正在使用 Mavericks 不确定这是否相关 Cannot profile allocations in simulator Instruments would load and start app i
  • 如何在JavaScript中将文件转换为base64?

    UPDTypeScript 版本也可以在答案中找到 现在我通过这一行获取 File 对象 file document querySelector files gt input type file files 0 我需要通过 json 以 B
  • Chrome 扩展中内容脚本的未定义响应

    我无法从我的内容脚本获得响应以显示在我的 popup html 中 当此代码运行并单击查找按钮时 Hello from response 打印 但变量响应被打印为未定义 最终目标是将当前选项卡的 DOM 放入我的脚本文件中 以便我可以解析它
  • Go——声明但未使用错误,当我认为我已经对变量这样做了

    这段代码有什么问题 package main import fmt fibonacci is a function that returns a function that returns an int func fibonacci fun
  • 我应该如何处理 PostgreSQL 中的“从 y 中排名 x”数据?

    我有一个表格 我希望能够呈现 Y 中排名 X 的数据 特别是 我希望能够以相对有效的方式呈现单个行的数据 即无需选择表中的每一行 排名本身非常简单 它是对表中单个列的直接 ORDER BY Postgres 似乎在这方面提出了一些独特的挑战
  • 从 Fragment 访问 Activity

    我正在尝试更改片段中的活动标题 在本例中 它是一个android support v4 app Fragment 为此 我将活动保存在片段的属性中onAttach 在片段上调用 根据文档 onAttach 应该在之前调用onCreateVi
  • 将星期几存储在数据库中

    我必须为学校做一个小项目 在数据库表中存储一周中的几天的最佳可能性是什么 例如 一周中的哪几天进行数据备份 我应该使用这样的列 backupDays varchar 50 1 5 gt gt monday friday 2 3 4 gt g
  • 连接由对等方重置:套接字写入错误 - Coldfusion 10 上的 cfcontent

    我们最近从 Coldfusion 9 升级到 CF10 我现在在使用 cfcontent 提供文档 pdf doc 等 的页面上收到偶发错误 我使用 cfcontent 来控制对文件的访问 如下所示有些仅供内部使用 使用 CF9 均为标准
  • urllib2 HTTP 错误 429

    所以我有一个 sub reddits 列表 我使用 urllib 来打开它们 当我仔细检查它们时 最终 urllib 失败了 urllib2 HTTPError HTTP Error 429 Unknown 经过一些研究 我发现 reddi