【现学现忘Docker理论】— 7.虚拟化技术分类(二)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【现学现忘Docker理论】— 7.虚拟化技术分类(二)相关的知识,希望对你有一定的参考价值。
参考技术A 在虚拟化环境下,物理服务器的CPU、内存、硬盘和网卡等硬件资源被虚拟化并受Hypervisor的调度,多个操作系统在Hypervisor的协调下可以共享这些虚拟化后的硬件资源,同时每个操作系统又可以保存彼此的独立性。根据Hypervisor所处层次的不同和Guest OS对硬件资源的不同使用方式,Hypervisor虚拟化被分为两种类型:裸金属架构(“裸机”虚拟化)和寄居架构(基于操作系统的虚拟化,宿主型虚拟化)。
Hypervisor虚拟化层安装在传统的操作系统中,虚拟化软件以应用程序进程形式运行在Windows和Linux等主机操作系统中。典型的宿主型Hypervisor有VMware Workstation和VirtualBox。在Hypervisor虚拟化环境下,部署在物理服务器上的系统称为Host OS,而部署在Hypervisor上的虚拟机操作系统称为Guest OS。
Hypervisor的安装:在物理服务器上安装Linux操作系统然后在操作系统上安装Hypervisor,然后部署虚拟机(Guest OS)后通过Hypervisor来共享资源。
寄居架构如下图:
宿主操作系统自身上运行这一些应用程序,然后还有虚拟机程序,这就是我们之前认识的传统虚拟机。
Hypervisor虚拟化层,在虚拟化环境中无须完整的Host OS,直接将Hypervisor部署在裸机上,并将裸机服务器的硬件资源虚拟化,也可以将Hypervisor理解为仅对硬件资源进行虚拟和调度的薄操作系统,其并不提供常规Host OS的功能。常见的裸金属架构有IBM的PowerVM、VMware的ESX Sevrer、Citrix的XenServer、Microsoft的Hyper-V以及开源的KVM等虚拟化软件。
裸金属架构虚拟化图如下:
现学现卖python小爬虫
1.给小表弟汇总一个院校列表,想来想去可以写一个小爬虫爬下来方便些,所以就看了看怎么用python写,到了基本能用的程度,没有什么特别的技巧,大多都是百度搜的,遇事不决问百度啦
2.基本流程就是:
用request爬取一个页面之后用BeautifulSoup4对爬到的页面进行处理,
然后需要的东西进行预处理之后存到桌面上的.txt文件里,
之后再对.txt文件里的字符串进行分割,
最后把数据存到excel表里
3.准备:需要下载安装requests库,以及BeautifulSoup4的库,还有xlsxwriter库,相关安装方法网上一大堆
4.爬取页面的网页源代码:
5.将爬取的数据存到.txt文件中:
from bs4 import BeautifulSoup import requests import os def get_soup(): r = requests.get("http://www.eol.cn/html/g/gxmd/bj/", timeout=30) # 判断网络链接的状态,连接错误将产生一个异常 #print(r.status_code) r.encoding = r.apparent_encoding soup = BeautifulSoup(r.text,features="html.parser") return soup; #删除前几个元素 def del_previous_ele(full_list): for i in range(8): full_list.remove(full_list[0]) return full_list; #获取学校名称,学校编号,主管部门,办学层次 def select_school_ele(full_list): school_list = [] for i in range(full_list.__len__()): //这里是对获取的所有学校列表进行遍历,取出需要的数据 if (i % 7) == 1 or (i % 7) == 2 or (i % 7) == 3 or (i%7) == 5 : school_list.append(full_list[i].string+"\\t") //获取到一个学校完整的信息之后就在后面换行 if (i%7) == 5: school_list.append(" \\n") else: pass return school_list;
#将数据写入文件 def createFile(txt): file = open(\'C:\\\\Users\\\\XXXXXXXXXXXXXXX\\\\Desktop\\\\school.txt\', \'w\') file.writelines(txt) file.close(); print("写入成功") if __name__ == "__main__": soup = get_soup() full_list = del_previous_ele(soup.find_all(align="center")) school_list = select_school_ele(full_list) createFile(school_list)
6.对school.txt文件进行处理,处理完了存到excel文件里
import os import xlsxwriter def get_file(path,mode_): list = ""; file = open(path,mode_) list = file.read() file.close() return list def write_excel(list): workbook = xlsxwriter.Workbook("C:\\\\Users\\\\XXXXXXXXXXXXXXXXX\\\\Desktop\\\\school.xlsx") worksheet = workbook.add_worksheet("school") #5个属性为一组 list_5_item = list.split("\\n") # print(len(list_5_item)) for i in range(len(list_5_item)): specific_school = list_5_item[i].split("\\t") print(len(specific_school)) for j in range(len(specific_school)): worksheet.write( i , j , specific_school[j]) if __name__ == "__main__": list = get_file(\'C:\\\\Users\\\\XXXXXXXXXXXXXXXXXXXXXXXXXXXx\\\\Desktop\\\\new.txt\', \'r\') write_excel(list)
7.完成结果:
文本文件:
school.xlsx文件:
8.到这里就结束啦,因为刚接触写爬虫,所以有些地方难免写的不好,不喜勿喷啦
以上是关于【现学现忘Docker理论】— 7.虚拟化技术分类(二)的主要内容,如果未能解决你的问题,请参考以下文章