使用asyncio和aiohttp执行异步HTTP请求的简单模块

asyhttp的Python项目详细描述


Latest PyPI package version

这是asyhttp,一个使用asyncio和aiohttp执行异步HTTP请求的简单模块。在

它提供了一种简单的方法来执行一组异步HTTP请求。在

特点

  • 代理支持
  • 自定义标题
  • 允许重定向
  • 使用TLS

如何使用loop()

asyhttp loop()接受一些args

  • urls一组字典,每个dict表示一个HTTP请求。在
  • proxy(str)proxt URL,str(可选)。在
  • process_out一个用户定义的函数,可用于处理每个HTTP请求的响应。 一旦响应到达(可选),将由执行每个HTTP请求的异步函数调用它。在
  • redirects(bool)–如果设置为True,则遵循重定向。默认为False(可选)。在
  • verify_tls(bool)check TLS cert validation为True,默认情况下为False(可选)。在

入门

fromasyhttpimportlooprequests=[{'url':'http://exam.ple/page.html','method':'GET'},{'url':'http://exam.ple/page.html','method':'POST','body':'blabla'}]loop(urls=requests)

用例

asyhttp循环对于编写针对易受攻击系统的快速暴力非常有用 或者作为dirfister等工具的核心。在

此代码的早期版本来自https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html

文件

处理HTTP响应

默认情况下,asyhttp循环打印stdout HTTP状态代码和接收到的每个响应的原因。 您可以重写它的默认行为,编写自定义代码来处理HTTP请求的响应。 你的代码必须写在一个函数中,并作为一个名为process\u out的kwarg传递给循环。 该函数将由执行每个HTTP请求的异步函数调用, 一旦得到答复。在

在自定义代码中,可以处理: -请求的url:HTTP -返回代码 -原因 -呼吸机构 -用户数据

示例

^{pr2}$
fromasyhttpimportlooprequests=[{'url':'http://exam.ple/page.html','method':'GET'}]loop(urls=requests)

示例

fromasyhttpimportloopdefprocess_output(url,return_code,reason,resp_body,user_data):ifreturn_code==200:sys.stdout.write("url")requests=[{'url':'http://exam.ple/page.html','method':'GET'}]loop(urls=requests,process_out=process_output)

asyhttp循环的args

  • urls
  • process_out
  • proxy
  • verify_tls
  • redirects

支持的HTTP方法

  • 得到
  • 岗位
  • 头部

HTTP请求格式

{'method':'GET','url':'http://exam.ple/page.html'}{'method':'POST','url':'http://exam.ple/page.html','body':'blablabl=balbal'}{'url':'http://exam.ple/page.html','method':'GET','headers':'X-Custom-Header:YEAH'}

代理支持

loop(urls=url_dict_list,proxy="http://127.0.0.1:8080")

自定义标题

要向请求添加HTTP头,请将其作为dict传递

{'url':'http://exam.ple/page.html','method':'GET','headers':{'User-agent':'YEAH'}}

允许重定向

默认为False

loop(urls=requests,process_out=process_response,redirects=True)

验证TLS

默认为False

loop(urls=requests,process_out=process_response,verify_tls=True)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
来自偏移量的java JavaPairInputStream流   gzip Java TarInputStream读取tar的文件名。包含另一个tar的gz文件。gz文件   如何在Linux shell脚本中确定和使用实际的java路径   java请求太多FirebaseError   java错误json解析   java在localserver上发送安卓应用程序的输出   JavaSpring:启动和停止webapplication时更新DBtable条目   java如何使用JavaFX在矩形处设置文本?   java SQL查询在Hibernate中出现异常   java我无法使用javamail代码通过outlook(hotmail帐户)配置发送邮件,但在gmail中工作正常   java是不同的持久性。测试运行/JPA装置的xml属性   无头Eclipse的java导出战   使用ContentVersionStrategy的java Spring引导缓存禁止使用gzip进行资源压缩   java如何获取计算机的设备令牌?   图像文件的java ImageInfo不包含有效值   继承强制在Java中使用基类方法