首页 文章
  • 10 votes
     answers
     views

    aiohttp - 异常忽略的消息

    我正在运行以下代码,通过aiohttp发出5个请求: import aiohttp import asyncio def fetch_page(url, idx): try: url = 'http://google.com' response = yield from aiohttp.request('GET', url) print(...
  • 5 votes
     answers
     views

    在循环结束之前从python协同程序收集结果

    我有一个用discord.py构建的python discord bot,这意味着整个程序在一个事件循环中运行 . 函数I 'm working on involves making several hundred HTTP requests and add the results to a final list. It takes about two minutes to do these in...
  • 1 votes
     answers
     views

    aiohttp - 多个websockets,单个会话?

    我对图书馆越来越熟悉,但我对以下情况感到困惑: 我希望不断处理来自两个不同网站的websockets的更新消息 . 但是,由于aiohttp.ClientSession()对象应存在于协同程序中,因此我无法使用单个会话变量实现此目的 . import asyncio import aiohttp url1 = 'wss://example.com' async def main(): ...
  • 0 votes
     answers
     views

    如何重置/清除aiohttp会话

    我一直在用aiohttp和反连接代理进行一些测试(每个请求的IP更改) . 使用反向连接代理的最大问题是,有时候你没有得到一个好的代理 . 无论如何,无论如何,我仍然需要通过该特定URL的请求 . 我创建了一个请求http://ip4.me 10,000次并检索IP地址的示例 . 一切都在一开始就有效,但最终,它开始出现错误: 赋值前引用的局部变量'ip' 出现此错误的原因是因为我在请求后获得...
  • 1 votes
     answers
     views

    Python Async Function中的多个Await

    我在自定义类中使用aiohttp会话和信号量: async def get_url(self, url): async with self.semaphore: async with self.session.get(url) as response: try: text_response = await respo...
  • 0 votes
     answers
     views

    保持aiohttp会话活着

    我试图通过并行和单独的会话每X秒访问一个网站,然后分析响应中的内容,看看每个会话是否应该继续 . 但是,一旦代码到达第二个循环,它就会失败 . import asyncio from aiohttp import ClientSession import logging import time interval = 30 instances = 2 visit_url = 'http://www...
  • 0 votes
     answers
     views

    实例不断超时aiohttp

    我在使用aiohttp时遇到了一些问题 . 我正在尝试使用它来监控网站的内部重定向 . 我检查了页面的网络选项卡,看起来他们每30秒左右发出一次GET请求,并且GET请求包含一些cookie . 然后服务器决定这些cookie是否正确,如果是,则重定向,否则你只是等待 . 这是我目前的代码: def launch(): passed = False headers = { ...
  • 3 votes
     answers
     views

    如何管理单个aiohttp.ClientSession?

    作为一个学习练习,我正在尝试修改aiohttp的快速入门示例以使用单个ClientSession获取多个URL(文档建议通常应为每个应用程序创建一个ClientSession) . import aiohttp import asyncio async def fetch(session, url): async with session.get(url) as response: ...
  • 16 votes
     answers
     views

    使用asyncio的多个循环

    是否可以使用asyncio进行多个循环?如果回答是肯定的,我该怎么做?我的用例是:我从异步中的网站列表中提取网址对于每个“子网址列表”,我会在异步/抓取它们 提取网址的示例: import asyncio import aiohttp from suburls import extractsuburls @asyncio.coroutine def extracturls(url): s...
  • 5 votes
     answers
     views

    ASYNCIO . 动态添加协程到循环

    我正在编写应用程序,它每秒扫描目录,检查新文件,如果它们出现 - 通过POST请求发送它们并执行存档 . 假设可以出现在目录中的文件数量可以从10到100 - 我决定使用asyncio和aiohttp来同时发送请求 . 码: import os import aiohttp from aiohttp.client import ClientSession BASE_DIR = '/path/t...
  • 0 votes
     answers
     views

    asyncio aiohttp:与睡眠重叠IO

    当所有协同程序都在等待时,asyncio会侦听事件以再次唤醒它们 . 一个常见的例子是 asyncio.sleep() ,它记录一个定时事件 . 实际上,事件通常是准备接收或发送新数据的IO套接字 . 为了更好地理解这种行为,我设置了一个简单的测试:它向localhost发送一个http请求并等待响应 . 在localhost上,我已经设置了一个烧瓶服务器,在响应之前等待1秒钟 . 发送请求后,客...
  • 2 votes
     answers
     views

    python aiohttp进入现有的事件循环

    我正在测试aiohttp和asyncio . 我希望相同的事件循环有一个套接字,http服务器,http客户端 . 我正在使用此示例代码: @routes.get('/') async def hello(request): return web.Response(text="Hello, world") app = web.Application() app.add...
  • 0 votes
     answers
     views

    与gaiohttp Worker 的gunicorn总是返回404与烧瓶应用程序

    我正在使用nginx代理后面的gunicorn运行一个烧瓶应用程序,并试图让gaiohttp工作者工作 . 当选择gaiohttp worker时,应用程序只返回所有URL的404 使用sync或gevent worker时一切正常 . 也没有直接运行gunicorn和gaiohttp即不使用nginx它工作正常 . 我已经阅读了我能找到的一切 . 我错过了什么吗?在nginx代理后运行时,gai...
  • 5 votes
     answers
     views

    如何使用范围会话的pytest-aiohttp灯具

    我正在尝试为aiohttp应用程序编写测试 . 我正在使用pytest-aiohttp插件 . 我的目的是在第一次测试执行之前初始化并运行应用程序,并在所有测试完成后拆除 . 像'loop','test_client'这样的pytest-aiohttp灯具非常有用,但它们有scope ='function',这意味着我无法在我自己的灯具中使用它们与scope ='session' . 有办法解决这...
  • 9 votes
     answers
     views

    协同之外的Aiohttp ClientSession

    我有一个REST API包装器,应该在交互式Python会话中运行 . HTTP请求既可以通过自动后台线程(使用API包装器),也可以由最终用户通过交互式会话手动完成 . 我试图将所有HTTP请求管理从前一个新的每线程请求方法迁移到asyncio,但由于我无法在主线程中运行asyncio循环(它必须是免费的ad-hoc Python命令/请求),我写了以下内容在后台线程中运行它: import ...
  • 3 votes
     answers
     views

    使用aiohttp将数据作为文件发送

    我有这样的 endpoints ,它返回一个csv文件: # POST /export/ @asyncio.coroutine def export(request): post = yield from request.post() if not post.get('passwd', None) == 'topsecret': return web.Respons...
  • 14 votes
     answers
     views

    Asyncio和aiohttp将所有urls路径路由到处理程序

    我很难找到匹配所有传入网址的通配符网址匹配模式 . 这只匹配一个只有主机名的url: import asyncio from aiohttp import web @asyncio.coroutine def handle(request): print('there was a request') text = "Hello " return web...
  • 3 votes
     answers
     views

    这个async aiohttp代码出了什么问题?

    对于使用aiohttp的以下代码: async def send(self, msg, url): async with aiohttp.ClientSession() as session: async with session.post(url, data=msg) as response: self._msg = response.read()...
  • 0 votes
     answers
     views

    尝试发出异步请求时,RuntimeError会话关闭

    首先是代码: import random import asyncio from aiohttp import ClientSession import csv headers =[] def extractsites(file): sites = [] readfile = open(file, "r") reader = csv.reader(r...
  • 6 votes
     answers
     views

    基于aiohttp-form的身份验证

    我找不到 aiohttp 的工作代码和登录页面 . 目标很简单:使用用户名和密码进行基于表单的身份验证,我希望在随后的aiohttp async fetch调用中使用该cookie . 似乎整个Session概念在版本之间的aiohttp中发生了变化,所以我很好奇如何在最新版本中实现它 . 我不确定如何获取cookie一次,然后在异步事件中使用它 . 我真的很想看到 fully working e...
  • 0 votes
     answers
     views

    asyncio任务 - 从控制台成功运行,烧瓶应用程序失败“线程中没有当前事件循环”

    我已经编写了一些代码来使用aiohttp / asyncio异步执行多个GET请求 . 之后,从结果中提取一些信息 . 我想把它放在烧瓶应用程序中 . 异步代码在通过 python script.py 执行时运行正常但是当我尝试在Flask路由中使用它时,它失败并返回错误 There is no current event loop in thread 'Thread-1' . Python ...
  • 14 votes
     answers
     views

    Asyncio aiohttp - redis Pub / Sub和websocket在单个处理程序中读/写

    我正在玩aiohttp,看看它将如何作为带有websocket连接的移动应用程序的服务器应用程序 . 这里很简单"Hello world"例子(as gist here): import asyncio import aiohttp from aiohttp import web class WebsocketEchoHandler: @asyncio.corou...
  • 2 votes
     answers
     views

    aiohttp websocket EOfStream处理

    我正在使用aiohttp's默认WebsocketProtocol连接到websocket endpoints 并且突然出现(经过一段时间和多次无限循环迭代)我总是得到 WSMsgType.ERROR ,其中 EofStream 作为数据 . 根据我的理解,这不应该发生 . 我试着研究如何处理这个但是相对不成功 . 我应该关闭并重新连接到 endpoints 吗?有没有办法确保不会发生这种情况?我...
  • 1 votes
     answers
     views

    aiohttp Websocket客户端和HTTP服务器

    我正在编写一个需要从两个来源接收事件的应用程序 . 某些事件将来自Websocket客户端连接,而某些事件将来自传入的HTTP请求 . 是否可以使用aiohttp在同一个应用程序中同时拥有这两个侦听器,还是需要两个单独的可执行文件? 我目前有一个功能,它接受websocket事件,并在每个事件上调用一个回调 async def callback(msg): print(msg) asyn...
  • 1 votes
     answers
     views

    python aiohttp websockets关闭浏览器选项卡处理

    我正在尝试使用 aiohttp WebSockets和 aioredis 创建简单的活动用户计数器进行存储 . 当我在 Google Chrome 中添加新选项卡时,我的计数器在所有已打开的选项卡中完美递增 . 但是,当我关闭选项卡时,其他选项卡中没有任何更改 . 我想我应该在整个异步/等待机器中遗漏一些东西,但找不到可能出错的东西 . 这是我的应用程序 import asyncio impo...
  • 4 votes
     answers
     views

    如果先前的查询因超时失败,我无法使用aiohttp会话

    我有一个简单的脚本,可以创建用于加载不同页面的异步任务 . 第一个请求因TimeoutError失败,导致下一个查询失败 . 但是第二个超时时间更长,应该通过 . 有可能让其他查询不会失败吗? import aiohttp import asyncio import logging logging.basicConfig(level=logging.DEBUG, ...
  • 6 votes
     answers
     views

    Aiohttp,Asyncio:RuntimeError:事件循环已关闭

    我有两个脚本,scraper.py和db_control.py . 在scraper.py我有这样的事情: ... def scrap(category, field, pages, search, use_proxy, proxy_file): ... loop = asyncio.get_event_loop() to_do = [ get_pages(url, pa...
  • 0 votes
     answers
     views

    使用asyncio和aiohttp实现异步程序的最佳架构

    我试图了解如何最好地构建一个程序执行以下操作: 考虑多个分析 . 每个分析都请求来自多个数据源(REST API)的数据 . 在每次分析中,当从数据源收集所有数据时,将检查数据的一个或多个条件 . 如果满足这些条件,则会向另一个数据源发出另一个请求 . 目标是收集所有分析异步的数据,检查每个分析的条件,请求条件是否满足然后重复 . 因此,有以下要求: 检查数据的条件 after 在特定分析中收...
  • 1 votes
     answers
     views

    为什么aiohttp导入显示以下错误?

    aiohttp模块已成功安装 但不能导入如下信息 [root@ceph_admin ~]# python3 Python 3.6.5 (default, Jul 1 2018, 23:52:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux Type "help", "copyright", &qu...
  • 17 votes
     answers
     views

    aiohttp web.response body as json

    我在 aiohttp 上有python-3.6的HTTP服务器 . 如何通过JSON(来自 dict )返回 web.Response() ? async def api_server(request): res = {"q": "qqq", "a": "aaa"} return web.Respons...

热门问题