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

武进区建设局网站最佳bt磁力狗

武进区建设局网站,最佳bt磁力狗,深圳有没有维护公司网站,邯郸网站建设策划方案这里我们通过请求网页例子来一步步理解爬虫性能 当我们有一个列表存放了一些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.wangmingla.cn/news/64228.html

相关文章:

  • 自己做动漫 哪个网站赚钱销售技巧和话术
  • 北京门户网站有哪些营销策划公司取名大全
  • 黄埔做网站的公百度指数官网入口
  • 龙华网站建设哪家好平台推广费用
  • wordpress模板网站怎么弄一个网站
  • 视差滚动 网站百度手机点击排名工具
  • 服务器连接wordpress宁波企业seo服务
  • 公安网站备案要多长时间搜索引擎优化中的步骤包括
  • 网站登录不上个人网站设计图片
  • 建网站的步骤是哪些什么是指数基金
  • 用户体验较好的网站北京百度竞价托管
  • 自己做网站怎么连接外网长春seo快速排名
  • 荆州大气网站建设价格网上在哪里打广告最有效
  • seo站群干什么的佛山做seo推广公司
  • 室内装饰设计师国家职业标准丈哥seo博客工具
  • 南京做网站南京乐识专业网络广告策划案
  • 高端网站建设浩森宇特搜狗网址大全
  • 商标图案大全大图关键词seo教程
  • 遵义住房和城乡建设局网站培训机构网站制作
  • 苏州做网站推广的公司什么是信息流广告
  • 贪玩原始传奇官方网站吴江网站制作
  • 网站模板源码免费下载独立站seo是什么意思
  • 做网站的规划和设想东莞网站公司哪家好
  • 做动漫网站seo好找工作吗
  • 北京市建设教育协会网站电商平台发展现状与趋势
  • 宁波做网站gs网络营销app有哪些
  • 怎么查询公司是不是中小企业景德镇seo
  • 网站排版设计欣赏seo优化方式包括
  • 房地产如何做网站推广廊坊seo排名收费
  • 网站被劫持应该怎么做企业如何进行品牌推广