当前位置: 首页 > news >正文

视频网站怎么做统计定制网站建设功能报价表模板

视频网站怎么做统计,定制网站建设功能报价表模板,找外包公司做个网站多少钱,wordpress下载页面天涯使用requests 请求库虽然可以完成爬虫业务#xff0c;但是对于异步任务来说#xff0c;它是做不到的#xff0c; 这时候我们需要借助 aiohttp 异步请求库来完成异步爬虫的编写#xff1a; 话不多说#xff0c;直接看示例#xff1a; 注意#xff1a;楼主使用的python版…使用requests 请求库虽然可以完成爬虫业务但是对于异步任务来说它是做不到的 这时候我们需要借助 aiohttp 异步请求库来完成异步爬虫的编写 话不多说直接看示例 注意楼主使用的python版本是最新的3.12的py版本 另外pycharm使用的也是最新版的 2024版本的。 请务必与我保持一致 否则会报很多莫名其妙的异常信息。 下载 使用aiohttp 异步请求库请先pip 下载 pip install aiohttp 基本实例 import asyncio import aiohttpasync def get(session, url):async with session.get(url) as response:return await response.text(), response.statusasync def test():url http://www.baidu.comasync with aiohttp.ClientSession() as session:html_text, status await get(session, url)print(html_text)print(status)if __name__ __main__:asyncio.run(test()) 以上代码示例首先我们需要导入两个库分别是aiohttp,  asyncio,  因为要实现异步任务而启动异步需要使用asyncio 关于异步的知识点请自行查阅补充。 其次使用 async 关键字定义了一个 get 异步函数 它接受了 session, url 两个参数 而session则为aiohttp 中客户端ClientSession() 对象 因为aiohttp 它提供了两套业务功能 分别是服务端和客服端 服务端主要就是实现处理客户端发送请求的异步业务 而客户端就是发送请求的我们学爬虫就需要学aiohttp 提供的客户端操作功能。 言归正传 在这个get 方法中 使用 async 关键字来声明一个异步上下文管理器with ... as ... 然后返回所得到的响应 而在test 异步函数中 创建了一个ClientSession 对象 然后调用get 函数将session对象和url传递进去 最后调用asyncio.run 启动协程任务。 请求 GET: 对于一些有关于Get 请求携带参数的情况我们可以使用 params 形参来完成 async def test():params {name: I love Python, code: 520}url https://www.httpbin.org/getasync with aiohttp.ClientSession() as session:# 使用params 形参传递get 请求数据async with session.get(urlurl, paramsparams) as response:print(await response.text())if __name__ __main__:asyncio.run(test()) aiohttp 也提供了 POST, PUT, DELETE, HEAD, PATCH, OPTIONS 等请求方式。 POST: 而对于post 请求表单提交的数据 例如Content-Type 为 application/X-www-form-urlencoded 的数据 我们可以使用 data 形参来完成 楼主看了一下源码如果post 传递的数据为 json, 楼主斗胆猜一下应该为json 形参我们可以看一下源码 由此可见它的使用方式几乎和 requests 同步请求库一模一样 async def test():data {name: I love Python, code: 520}url https://www.httpbin.org/postasync with aiohttp.ClientSession() as session:# 使用 data 形参 传递 表单提交的数据async with session.post(urlurl, datadata) as response:print(await response.text())if __name__ __main__:asyncio.run(test()) 响应 对于响应结果我们可以调用一下方法来获取其中的状态码响应头响应体响应体二进制内容响应体JSON数据。 async def test():data {name: I love Python, code: 520}url https://www.httpbin.org/postasync with aiohttp.ClientSession() as session:async with session.post(url, datadata) as response:print(response.status) # 响应状态码print(response.headers) # 响应头print(await response.text()) # 获取响应体print(await response.read()) # 获取二进制数据print(await response.json()) # 获取相响应的JSON数据if __name__ __main__:asyncio.run(test()) 超时设置 我们可以借助aiohttp 提供的 ClientTimeout 对象来实现超时 如果超时还未请求到数据则抛异常 async def test():data {name: I love Python, code: 520}url https://www.httpbin.org/posttimeout aiohttp.ClientTimeout(total1) # 设置超时时间单位为 秒async with aiohttp.ClientSession(timeouttimeout) as session:async with session.post(url, datadata) as response:passif __name__ __main__:asyncio.run(test()) ClientTimeout 对象同样还提供了其它参数 例如connect, socket_connect 等等 详细参考官方文档 https://docs.aiohttp.org.en.stable/client_quickstart.html#timeouts 并发限制 由于异步爬虫拥有非常非常高的并发量 如几万几十万甚至上百万都有可能 但是如此高的并发量目标服务器很可能无法再短时间内响应而且有瞬间将目标服务器爬挂掉的危险 所以我们需要控制一下爬取的并发量。 我们可以借助asyncio 的 Semaphore 来控制并发量 # 最高并发 5 个 CONCURRENCY 5url http://www.baidu.com# 创建信号量对象 并将最大并发量常量传递进来 semaphores asyncio.Semaphore(CONCURRENCY)session Noneasync def test():# 使用信号量对象创建异步上下文即可控制最高并发量async with semaphores:print(爬取ing: , url)async with session.get(url) as response:await asyncio.sleep(1)return await response.text()async def main():global sessionsession aiohttp.ClientSession()test_tasks [test() for i in range(1000)]await asyncio.gather(*test_tasks)if __name__ __main__:asyncio.run(main()) 完了.... aiohttp 官方网站 https://docs.aiohttp.org/
http://www.dnsts.com.cn/news/43376.html

相关文章:

  • 包头住房和城乡建设厅网站校园加盟网站建设
  • 蓝色企业网站手机版织梦模板专做坏消息的网站
  • 企业移动网站制作免费主题大全软件下载
  • 商务网站建设综合实训报告软件商店电脑版官方下载
  • 离石市网站建设公司商城网站页面设计
  • 做网站 英语第三方网站
  • 网站建设期中考试题如何做视频网站不侵权
  • 低价网站建设咨询提供零基础网站建设教学培训
  • 强生公司营销网站为什么要这样做南京市公共建设管理中心网站
  • 网站设计书中企建设网站
  • 计算机毕设网站代做做团购网站需要什么
  • 东城网站开发公司pycharm 网站开发
  • 建设网站计划ppt模板请人制作一个app多少钱
  • 手机网站关键词排名查询wordpress词 条主题
  • 兼职做网站 深圳wordpress 淘宝客网站模板
  • 如何判断网站做没做404上海做门户网站的公司
  • 保定市做网站快推广app下载
  • 学生网站建设首页建设内部网站目的
  • a做片手机免费网站网站建设策略
  • 杭州正规企业网站建设网站开发承包合同
  • 青岛学网站建设的学校seo网站优化案例
  • 建设营销网站的目的免费网页模板之家
  • 网站各个功能模块wordpress教程 网站标题
  • 建立网站企业海口官网设计公司
  • 自己做模板网站自己做头像的网站非流光
  • 中英文自助网站建设丘北网站建设
  • 园区门户网站建设方案建设工程施工合同诉讼时效
  • 有自己团队做网站上线多久建设摩托车官网中国
  • wordpress网站收录插件邓州微网站建设
  • 域名备案怎么关闭网站珠海网站建设公司有哪些