问题标签 [aiohttp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
142392 浏览

python - 我如何在异步中使用请求?

我想在 中执行并行 http 请求任务asyncio,但我发现这python-requests会阻塞asyncio. 我找到了 aiohttp但它无法使用 http 代理提供 http 请求的服务。

所以我想知道是否有办法在asyncio.

0 投票
3 回答
3586 浏览

python-3.x - 在 Python 中关闭 asyncio 事件循环会导致异常结束

对于在 Windows 上的 Python 3.4 中使用 asyncio 和 aiohttp 的 https 请求,我需要使用 2 个事件循环。用于运行 shell 命令的 ProactorEventLoop,以及用于 HTTPS 请求的默认事件循环。不幸的是,ProactorEventLoop 不适用于 HTTPS 命令。

下面的代码显示了当我使用新创建的默认事件循环并尝试在 Windows 上最后关闭它时会发生什么。如果我在最后调用,我会在最后得到异常,loop.close如下所示:

将其注释掉会消除异常,我不知道为什么。唯一的

谢谢,格林杰

0 投票
1 回答
714 浏览

python - 你如何利用 python aiohttp 框架的代理支持

还有效吗os.environ['http_proxy']?以及如何根据请求使用代理?

0 投票
2 回答
2306 浏览

python-3.x - 连接没有通过 Python3 asyncio 并发 HTTP 获取请求关闭

我刚刚开始使用 Python3.4 中的 asyncio 库并编写了一个小程序,尝试一次同时获取 50 个网页。该程序在数百个请求后因“打开的文件过多”异常而崩溃。

我认为我的 fetch 方法使用 'response.read_and_close()' 方法调用关闭了连接。

有什么想法吗?我是否以正确的方式解决这个问题?

我得到的错误是:

0 投票
1 回答
1365 浏览

python - 使用 aiohttp 检测 http 响应编码

我正在尝试学习如何使用asyncio来构建异步网络爬虫。下面是一个粗略的爬虫来测试框架:

虽然asyncio似乎记录得很好,但aiohttp似乎只有很少的文档,所以我正在努力自己解决一些问题。

首先,我们有没有办法检测页面响应的编码?其次,我们可以要求连接在会话中保持活动状态吗?还是默认情况下是这样的requests

0 投票
0 回答
1271 浏览

cookies - 使用 Asyncio 支持会话 cookie

我在 Python 中制作了一个需要与 Asyncio 一起使用的抓取脚本。我还需要它来支持网络 cookie。最初使用 urllib.request 制作,脚本如下所示:

这目前工作正常,但我还需要使用 Asyncio 使其成为多线程。由于我没有找到任何有关它的文档,因此我尝试了以下方法:

作为上下文,我试图抓取的页面是这样制作的,它们在加载时测试会话 cookie 的存在,如果不存在则创建一个,然后重定向到它们自己。现在,通过简单的抓取方法,我陷入了一个循环,并且使用 Asyncio/Aiohttp,什么都不会发生。

0 投票
1 回答
1147 浏览

python - 在 Python 中使用 asyncio 并行化 Web 任务

我正试图围绕 asyncio 和 aiohttp 进行思考,多年来编程第一次让我感到完全愚蠢和无能。这有点漂亮,以一种奇怪的禅宗方式。但是,唉,还有工作要做。

我有一个现有的课程,可以在网络上做许多奇妙的事情,比如注册一个网站、获取数据、工作。现在我需要 100 或 1000 只这样的小工蜂来注册。代码大致如下:

如您所见,我们使用 requests 模块发出 POST 请求。然而这是阻塞的,所以我们必须等待工人 N 完成注册,然后才能开始注册工人 N+1。幸运的是,Worker 类的原作者(听起来很迷人的马克思主义者)以她无限的智慧将每个 HTTP 调用封装在self.make_request方法中,因此使整个 Worker 非阻塞应该只是将请求库换成非阻塞的问题一个 aaaa 和鲍勃是你的叔叔,对吧?这是我走了多远:

但这会在我做AttributeError: 'generator' object has no attribute 'get'的方法中引发一个问题。除此之外,我仍然没有一本整洁的字典中的工人。我知道我很可能完全误解了 asyncio 的工作原理 - 但我已经花了一天时间阅读各种文档、David Beazly 的令人震惊的教程以及大量玩具示例,这些示例足以让我理解它们适用于这种情况很简单。我应该如何构建我的工作人员和我的异步循环以并行注册 100 个工作人员并最终在他们注册后获得所有工作人员的列表?signupself.user_id = data.get("user_id")

0 投票
1 回答
13480 浏览

python - 使用 asyncio 的多个循环

是否可以使用 asyncio 进行多个循环?如果回答是肯定的,我该怎么做?我的用例是: * 我从异步网站列表中提取 url * 对于每个“子 url 列表”,我会在 async/ 中抓取它们

提取网址的示例:

如果我执行此代码,当 python 将尝试启动第二个循环时,我会遇到一个错误,女巫说一个循环已经在运行。

PS:我的模块“extractsuburls”使用 aiohttp 来执行 web 请求。

编辑:

好吧,我已经尝试过这个解决方案:

但我有这个错误:循环参数必须与未来一致

任何的想法?

0 投票
1 回答
1493 浏览

python - 1个代理的异步信号量/多个池锁-aiohttp

我有 5,00,000 个网址。并希望获得每个异步的响应。

我一次想要 200 个连接(并发 200),不超过这个,因为

当我为 50 个 url 运行该程序时,它工作正常,即,url_list[:50] 但如果我通过整个列表,我会收到此错误

可能是频率太多,服务器在限制后拒绝响应?

0 投票
3 回答
54256 浏览

python - 如何将python asyncio与线程结合起来?

我已经使用 Python asyncio 和 aiohttp 成功构建了一个RESTful 微服务,它侦听 POST 事件以从各种馈送器收集实时事件。

然后它构建一个内存结构,以在嵌套的 defaultdict/deque 结构中缓存最后 24 小时的事件。

现在我想定期检查该结构到磁盘,最好使用pickle。

由于内存结构可能大于 100MB,因此我希望避免在检查点结构所需的时间内暂停我的传入事件处理。

我宁愿创建结构的快照副本(例如 deepcopy),然后花时间将其写入磁盘并在预设的时间间隔内重复。

我一直在寻找有关如何组合线程(并且线程甚至是最好的解决方案?)和 asyncio 用于此目的的示例,但找不到对我有帮助的东西。

非常感谢任何入门指南!