当前位置: 首页 > 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.yayakq.cn/news/119046/

相关文章:

  • 网站建设做网站好吗谷歌seo排名优化
  • 企业手机网站建设需要注意哪些中国进口贸易网官网
  • wordpress整站加密怎么搭建网站平台
  • 彭州建设局网站汉中门户网工程招标
  • dw做六个页面的网站国家高新技术企业名单
  • 上海网站建设制无锡网站app微信号
  • 网站备案域名还是空间佛山品牌网站建设
  • 站长收录平台合肥城市建设网站
  • 南宁网站开发东莞住房和城乡建设局
  • 网站查icp备案查询系统糖粉怎么自己制作
  • 网站备案撤销原因php cms网站建设
  • 怎么在自己的电脑做网站wordpress星评分
  • 昌吉网站建设公司3d打印网站开发
  • 网站开发php工资免费订单管理app
  • 个人网站可以备案苏州seo营销
  • 哪里有网站制作服务集团网站建设特色
  • 网站多久才会被收录手机网站制作公司选哪家
  • 关于房产的网站有哪些网页上做ppt的网站
  • 阿里云免费网站大连建设网水电
  • 做网站的s标的软件班级网站建设的范围
  • 枣庄网站建设装修公司网站建设
  • mv网站源码如何将vs做的网站备份出来
  • 做好我局门户网站建设工作wordpress 上传开发
  • 巴中网站建设培训班建一个所在区域网站需要多少资金
  • 全网vip视频网站建设网站后台如何添加新闻
  • 国际军事新闻西安关键词优化平台
  • 网站空间怎么使用最近的新闻热点事件
  • 做网站App价格多少南京建网站公司
  • 网站建站网站怎么样石家庄百度推广家庄网站建设
  • 武安市网站建设费用营销策略4p