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

武进区建设局网站搜索引擎大全网址

武进区建设局网站,搜索引擎大全网址,信用网站建设情况,组织建设存在的问题这里我们通过请求网页例子来一步步理解爬虫性能 当我们有一个列表存放了一些url需要我们获取相关数据,我们首先想到的是循环 简单的循环串行 这一种方法相对来说是最慢的,因为一个一个循环,耗时是最长的,是所有的时间总和 代码…

这里我们通过请求网页例子来一步步理解爬虫性能

当我们有一个列表存放了一些url需要我们获取相关数据,我们首先想到的是循环

简单的循环串行

这一种方法相对来说是最慢的,因为一个一个循环,耗时是最长的,是所有的时间总和
代码如下:这里我们通过请求网页例子来一步步理解爬虫性能

当我们有一个列表存放了一些url需要我们获取相关数据,我们首先想到的是循环

简单的循环串行

这一种方法相对来说是最慢的,因为一个一个循环,耗时是最长的,是所有的时间总和
代码如下:

import requestsurl_list = ['http://www.baidu.com','http://www.pythonsite.com','http://www.cnblogs.com/'
]for url in url_list:result = requests.get(url)print(result.text)

通过线程池

通过线程池的方式访问,这样整体的耗时是所有连接里耗时最久的那个,相对循环来说快了很多

import requests
from concurrent.futures import ThreadPoolExecutordef fetch_request(url):result = requests.get(url)print(result.text)url_list = ['http://www.baidu.com','http://www.bing.com','http://www.cnblogs.com/'
]
pool = ThreadPoolExecutor(10)for url in url_list:#去线程池中获取一个线程,线程去执行fetch_request方法pool.submit(fetch_request,url)pool.shutdown(True)

线程池+回调函数

这里定义了一个回调函数callback线程池+回调函数

这里定义了一个回调函数callback
请添加图片描述

from concurrent.futures import ThreadPoolExecutor
import requestsdef fetch_async(url):response = requests.get(url)return responsedef callback(future):print(future.result().text)url_list = ['http://www.baidu.com','http://www.bing.com','http://www.cnblogs.com/'
]pool = ThreadPoolExecutor(5)for url in url_list:v = pool.submit(fetch_async,url)#这里调用回调函数v.add_done_callback(callback)pool.shutdown()

通过进程池

通过进程池的方式访问,同样的也是取决于耗时最长的,但是相对于线程来说,进程需要耗费更多的资源,同时这里是访问url时IO操作,所以这里线程池比进程池更好

import requests
from concurrent.futures import ProcessPoolExecutordef fetch_request(url):result = requests.get(url)print(result.text)url_list = ['http://www.baidu.com','http://www.bing.com','http://www.cnblogs.com/'
]
pool = ProcessPoolExecutor(10)for url in url_list:#去进程池中获取一个线程,子进程程去执行fetch_request方法pool.submit(fetch_request,url)pool.shutdown(True)

进程池+回调函数

这种方式和线程+回调函数的效果是一样的,相对来说开进程比开线程浪费资源

from concurrent.futures import ProcessPoolExecutor
import requestsdef fetch_async(url):response = requests.get(url)return responsedef callback(future):print(future.result().text)url_list = ['http://www.baidu.com','http://www.bing.com','http://www.cnblogs.com/'
]pool = ProcessPoolExecutor(5)for url in url_list:![请添加图片描述](https://img-blog.csdnimg.cn/8ea42ad01558457a9db314a715b3e8b6.png)v = pool.submit(fetch_async, url)# 这里调用回调函数v.add_done_callback(callback)pool.shutdown()

主流的单线程实现并发的几种方式

asyncio
gevent
Twisted
Tornado
下面分别是这四种代码的实现例子:

asyncio例子1:

import asyncio@asyncio.coroutine #通过这个装饰器装饰
def func1():print('before...func1......')# 这里必须用yield from,并且这里必须是asyncio.sleep不能是time.sleepyield from asyncio.sleep(2)print('end...func1......')tasks = [func1(), func1()]loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(*tasks))
loop.close()
http://www.khdw.cn/news/61198.html

相关文章:

  • 响应式政府网站互联网电商平台
  • 网上做博彩网站代理赚钱吗网络营销的策略包括
  • 响应式网站推广seo站
  • 素材网站模板国外网站建设
  • 如何做专业的模板下载网站seo站内优化站外优化
  • 想开个网站做外贸怎么做沈阳关键词快照优化
  • 电子商务网站搭建方案营销推广方式有哪些
  • 不让在建设门户网站站长工具永久
  • 网站开发中职责上海seo公司哪个靠谱
  • 建设苏州旅游网站的方案策划书希爱力跟万艾可哪个猛
  • 建设部网站官网造价工程师孙思新南昌seo教程
  • 南通网站建设报价武汉楼市最新消息
  • 做商城网站应该用什么程序福建seo排名
  • 湖北建设信息网站搜索引擎排名2020
  • 网站改版后的内容seo查询系统源码
  • 乐安网站建设合肥网
  • 加强政民互动 建设交流型政府门户网站株洲最新今日头条
  • 动态域名解析 免费厦门百度seo排名
  • 网站建设文件夹结构宁波网络推广平台
  • 做复刻衣服买网站快速整站排名seo教程
  • 云浮 网站建设网络服务器的功能
  • 华为云建站和阿里云建站区别建立网站的主要步骤
  • 融资平台排行榜seo优化按天扣费
  • 网站设计公司域名服务器建设云推广
  • 网站如何做推广广告sem是什么意思
  • 中国医院建设协会网站云南seo简单整站优化
  • 网站后台生成静态页面好搜网
  • 自己做公司网站需要什么优势的seo网站优化排名
  • 个人开发者百度seo关键词优化电话
  • 最牛的网站建设cnzz数据统计