分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

用asyncio的异步网络连接来获取sina、sohu和163的网站首页

发布时间:2023-09-06 01:34责任编辑:胡小海关键词:暂无标签

代码如下:

import asyncioasync def wget(host): ???print(‘wget %s...‘ % host) ???connect = asyncio.open_connection(host, 80) ???reader, writer = await connect ???header = ‘GET / HTTP/1.0\r\nHost: %s\r\n‘ % host ???writer.write(header.encode(‘utf-8‘)) ???await writer.drain() ???while True: ???????line = await reader.readline() ???????if line == b‘\r\n‘: ???????????break ???????print(‘%s header > %s‘ % (host, line.decode(‘utf-8‘).rstrip())) ???????writer.close()loop = asyncio.get_event_loop()tasks = [wget(host) for host in [‘www.sina.com.cn‘, ‘www.sohu.com‘, ‘www.163.com‘]]loop.run_until_complete(asyncio.wait(tasks))loop.close()

上面的写法只适用与python 3.5及其之后的版本,再python 3.5之前,用

请注意,asyncawait是针对coroutine的新语法,要使用新的语法,只需要做两步简单的替换:

  1. @asyncio.coroutine替换为async
  2. yield from替换为await

用asyncio的异步网络连接来获取sina、sohu和163的网站首页

原文地址:https://www.cnblogs.com/ncuhwxiong/p/8183035.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved