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

政府网站集约化建设通知免费seo技术教程

政府网站集约化建设通知,免费seo技术教程,好看的logo图案,西安网站开发公司电话requests & grequests requests 和 grequests 是Python中用于发送HTTP请求的不同库。requests 是一个同步、阻塞式库,而 grequests 是基于 requests 封装的异步非阻塞库,它利用了 gevent 库提供的协程机制,能够并发发送多个请求。 选择…

requests & grequests

requests 和 grequests 是Python中用于发送HTTP请求的不同库。requests 是一个同步、阻塞式库,而 grequests 是基于 requests 封装的异步非阻塞库,它利用了 gevent 库提供的协程机制,能够并发发送多个请求。

选择哪个库取决于你的需求:

当你只需要顺序发送少量请求,或者不关心请求之间并发性能的时候,requests 是一个很好的选择,因为它易于理解和使用。

当你需要并发处理大量HTTP请求,提高整体性能,尤其是网络IO密集型任务时,如爬虫抓取大量页面、API服务端并发请求下游服务等场景下,grequests 更合适。‍

单线程同步请求(使用requests)

 
  1. import requests

  2. urls = ["https://example.com/page1", "https://example.com/page2", "https://example.com/page3"]

  3. # 单线程同步请求

  4. responses = [requests.get(url) for url in urls]

  5. # 处理响应

  6. for response in responses:

  7. print(response.text)

多线程同步请求(使用requests配合threading)

 
  1. import requests

  2. import threading

  3. # 创建一个处理请求的函数

  4. def fetch_page(url):

  5. response = requests.get(url)

  6. return response.text

  7. urls = ["https://example.com/page1", "https://example.com/page2", "https://example.com/page3"]

  8. threads = []

  9. # 启动多线程请求

  10. for url in urls:

  11. thread = threading.Thread(target=fetch_page, args=(url,))

  12. threads.append(thread)

  13. thread.start()

  14. # 等待所有线程完成

  15. for thread in threads:

  16. thread.join()

  17. # 假设你有一个列表存储结果

  18. results = [result for result in thread_results]

异步并发请求(使用grequests)

 
  1. import grequests

  2. urls = ["https://example.com/page1", "https://example.com/page2", "https://example.com/page3"]

  3. # 异步并发请求

  4. rs = (grequests.get(url) for url in urls)

  5. responses = grequests.map(rs)

  6. # 处理响应

  7. for response in responses:

  8. print(response.text)

超时控制(grequests可以更方便地处理超时)

 
  1. import grequests

  2. # 对每个请求设置超时时间为5秒

  3. urls = [("https://example.com/page{}".format(i), {'timeout': 5}) for i in range(1, 4)]

  4. rs = (grequests.get(url, **kwargs) for url, kwargs in urls)

  5. responses = grequests.map(rs)

  6. for response in responses:

  7. if response is not None:

  8. print(response.text)

  9. else:

  10. print(f"Request timed out for {response.request.url}")

带异常处理的异步请求(grequests可以在一个循环中统一处理异常)

 
  1. import grequests

  2. urls = ["https://example.com/page1", "https://example.com/page2", "https://example.com/page3"]

  3. rs = [grequests.get(url) for url in urls]

  4. def handle_exception(request, exception):

  5. print(f"Error on URL {request.url}: {exception}")

  6. responses = grequests.map(rs, size=10, exception_handler=handle_exception)

  7. for response in responses:

  8. if response is not None:

  9. print(f"{response.request.url} - Response: {response.text}")

在最后这个例子中,grequests.map() 同时发送多个请求,当有请求发生异常时,通过自定义的 exception_handler 函数来处理异常,而不是让整个程序崩溃。同时,size 参数指定了最大并发数,有助于避免一次性发起过多请求导致服务器压力过大。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

http://www.fp688.cn/news/146176.html

相关文章:

  • 签证网站建设搜狗官网
  • 宁海县建设局网站下属单位seo收费
  • 网站建设对网络营销有哪些影响武汉seo公司哪家好
  • 记事本做网站滚动条网站seo排名优化软件
  • 海城网站设计手机app安装下载
  • 潍坊网站建设价格百度爱采购官网
  • 湖北企业网站建设多少钱百度收录申请
  • 视频背景网站优化大师专业版
  • wordpress 网站死机seo优化方案总结
  • 东营市东营网站设计又一病毒来了比新冠可怕
  • 企业网站建设搭建关键词林俊杰mp3免费下载
  • linux 做网站数据库欧美seo查询
  • 三拼域名做网站整站优化方案
  • 昆明高端网站设计代刷网站推广免费
  • 传奇网站模板使用官网设计比较好看的网站
  • php网站开发职责青岛网站建设制作公司
  • wordpress新闻是哪个表惠州百度seo哪里强
  • 重庆工程建设信息网站各大网站排名
  • 大连建设集团招聘信息网站新浪网今日乌鲁木齐新闻
  • 如何做简单网站首页seo基础知识考试
  • b2c网站建设的外贸网站免费推广b2b
  • 小程序怎么做微网站链接西安快速排名优化
  • 区网站制作小说网站排名
  • 做ppt的网站有哪些免费自制app软件
  • wordpress如何汉化深圳排名seo公司
  • 营销型网站 平台百度一下照片识别
  • 泰州网站制作网上国网推广
  • 从化专业做网站网站流量数据分析
  • 做跨境电商被骗了seo小白入门教学
  • 长春网站策划网站推广步骤