版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python爬虫、数据清洗和数据可视化大数据分析大数据与人工智能技术丛书本章学习目标了解大数据的定义了解大数据的特征及技术框架掌握不同数据分类了解大数据与云计算的关系了解大数据与人工智能的关系了解发展大数据的意义了解大数据在我国的发展现状第一章大数据介绍大数据(bigdata),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。什么是大数据?大数据时代的概念最早是全球知名咨询公司麦肯锡提出的,2006年麦肯锡提出了大数据概念。何为“大数据”?大数据的发展主要历经了三个阶段,出现阶段、热门阶段和应用阶段。1、出现阶段(1980-2008)2、热门阶段(2009-2012)3、应用阶段(2013-2016)大数据发展经历大数据简介1.1大数据概述大数据简介BIGDATA2015年国务院正式印发《促进大数据发展行动纲要》,《纲要》明确指出要不断的推动大数据发展和应用,在未来打造精准治理、多方协作的社会治理新模式,建立运行平稳、安全高效的经济运行新机制,构建以人为本、惠及全民的民生服务新体系,开启大众创业、万众创新的创新驱动新格局,培育高端智能、新兴繁荣的产业发展新生态。2015年,大数据“十三五”规划出台,《规划》通过定量和定性相结合的方式提出了2020年大数据产业发展目标。在总体目标方面,提出到2020年,技术先进、应用繁荣、保障有力的大数据产业体系基本形成,大数据相关产品和服务业务收入突破1万亿元,年均复合增长率保持30%左右。A大数据相关政策B大数据的影响当数据量不断增长和累积到今天,传统的三种范式在科学研究,特别是一些新的研究领域已经无法很好的发挥作用,需要有一种全新的第四种范式来指导新形势下的科学研究。这种新的范式就是从以计算为中心,转变到以数据处理为中心,确切的说也就是数据思维。人类在科学研究上先后历经了实验、理论和计算三种范式。大数据对思维方式的影响人们处理的数据从样本数据变成全部数据。由于是全样本数据,人们不得不接受数据的混杂性,而放弃对精确性的追求。传统的数据分析为了保证精确性和准确性,往往采取抽样分析来实现。在大数据时代,往往采取全样分析而不再采用以往的抽样分析。人类通过对大数据的处理,放弃对因果关系的渴求,转而关注相关关系。大数据对科学活动的影响大数据的影响大数据激发内需的剧增,引发产业的巨变。生产者具有自身的价值,而消费者则是价值的意义所在。有意义的东西才会有价值,消费者如果不认同,就卖不出去,价值就实现不了;消费者如果认同,就卖得出去,价值就得以体现。大数据可以帮助人们从消费者这里分析意义所在,从而帮助生产者实现更多的价值。在大数据时代,不管是物理学、生物学、环境生态学等领域,还是军事、金融、通信等行业,数据正在迅速膨胀,没有一个领域可以不被波及。“大数据”正在改变甚至颠覆着人们所处的整个时代,对社会发展产生了方方面面的影响。大数据对社会发展的影响大数据对就业市场的影响随着对大数据认识的不断加深,人们认为大数据一般具有四个特征大数据中的数据量大,就是指的海量数据。大数据之“大”还表现在其采集范围和内容的丰富多变,能存入数据库的不仅包含各种具有规律性的数据符号,还囊括了各种如图片、视频、声音等非规则的数据。(1)数据产生得快。(2)数据处理得快数据产生速度快数据量大大数据包括结构化数据、半结构化数据和非结构化数据。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。数据价值密度低数据类型繁多大数据的特征01020304大数据的特征数据类型繁多2012年一季度2012年二季度2012年三季度销售费用财务费用管理费用账套3账套2账套1切片切块旋转上卷下钻结构化数据OLAP分析大数据的特征非结构化数据处理分析技术文本数据图像数据语音数据视频数据流数据数据类型繁多大数据的特征大数据征信系统大数据爬虫应用大数据应用大数据关键技术大数据采集物联网感知技术可穿戴设备技术校园一卡通技术01
物联感知类技术采集:学生学习行为数据、设备状态数据、学生体质数据、学生生活数据。采集:学生学习过程中的情感数据、校园安全数据、课堂教学数据。视频监控技术智能录播技术情感识别技术02视频录制类技术采集:各种在线与管理数据、采集移动学习过程数据、运维日志与用户日志数据、采集教育网络舆情数据。网评网阅技术点阵数码笔技术拍照搜题技术03图像识别类技术采集:各种在线与管理数据、采集移动学习过程数据、运维日志与用户日志数据、采集教育网络舆情数据。日志搜索分析技术在线学习与管理平台技术移动APP技术网络爬虫采集技术04平台采集类技术大数据预处理数据清理:用来清除数据中的噪声,纠正不一致。数据处理数据归一化数据存储数据预处理高线运算实时查询输出结果或展示数据预处理技术主要包含以下几点:数据集成:将数据由多个数据源合并成一个一致的数据存储,如数据仓库。数据归约:通过如聚集、删除冗余特征或聚类来降低数据的规模。数据变换:把数据压缩到较小的区间,如[0,1],可以提高涉及距离度量的挖掘算法的准确率和效率。大数据关键技术分布式键值系统用于存储关系简单的半结构化数据。典型的分布式键值系统有AmazonDynamo,以及获得广泛应用和关注的对象存储技术(ObjectStorage)也可以视为键值系统,其存储和管理的是对象而不是数据块。分布式文件系统分布式键值系统存储管理需要多种技术的协同工作,其中文件系统为其提供最底层存储能力的支持。分布式文件系统HDFS是一个高度容错性系统,被设计成适用于批量处理,能够提供高吞吐量的的数据访问。大数据存储大数据关键技术大数据分析挖掘大数据分析与挖掘主要包含两个内容:可视化分析与数据挖掘算法的选择。可视化分析不论是分析专家,还是普通用户,在分析大数据时,最基本的要求就是对数据进行可视化分析。经过可视化分析后,大数据的特点可以直观地呈现出来,将单一的表格变为丰富多彩的图形模式,简单明了、清晰直观,更易于读者接受。大数据挖掘算法的选择在大数据分析中的理论核心就是数据挖掘算法,数据挖掘的算法多种多样,不同的算法基于不同的数据类型和格式会呈现出数据所具备的不同特点。各类统计方法都能深入数据内部,挖掘出数据的价值。数据挖掘算法是根据数据创建数据挖掘模型的一组试探法和计算。大数据关键技术大数据查询与分析计算:HBase、Hive、Cassandra、Premel、Impala、Shark、Hana、Redis。批处理计算:
MapReduce、Spark。流式计算:Scribe、Flume、Storm、S4、SparkStreaming。迭代计算:HaLoop、iMapReduce、Twister、Spark。图计算:Pregel、PowerGrapg、GraphX。内存计算:Dremel、Hana、Redis。大数据计算模式谷歌大数据计算模式大数据计算模式对应系统大数据查询与分析计算:HBase、Hive、Cassandra、Premel、Impala、Shark、Hana、Redis。批处理计算:
MapReduce、Spark。流式计算:Scribe、Flume、Storm、S4、SparkStreaming。迭代计算:HaLoop、iMapReduce、Twister、Spark。图计算:Pregel、PowerGrapg、GraphX。内存计算:Dremel、Hana、Redis。大数据计算模式对应的系统如下所示。批处理系统ApacheHadoop是一种专用于批处理的处理框架,Hadoop是首个在开源社区获得极大关注的大数据框架。处理非常巨大的数据集时,批处理系统是最有效的。批处理的过程包括将任务分解为较小的任务,分别在集群中的每个计算机上进行计算,根据中间结果重新组合数据,然后计算和组合最终结果。批处理是一种用来计算大规模数据集的方法。大数据框架流处理系统大数据框架流处理系统是指用于处理永不停止的接入数据的系统,与批处理系统所处理的数据不同之处在于,流处理系统并不对已经存在的数据集进行操作,而是对从外部系统接入的的数据进行处理。流处理系统可以分为两种。逐项处理:每次处理一条数据,是真正意义上的流处理。微批处理:这种处理方式把一小段时间内的数据当作一个微批次,对这个微批次内的数据进行处理。ApacheStorm是一种侧重于低延迟的流处理框架,它可以处理海量的接入数据,以近实时方式处理数据。Storm延时可以达到亚秒级。这种框架不仅可以提供处理数据所需的方法,而且提供了自己的集成项、库、工具,可胜任图形分析、机器学习、交互式查询等多种任务。当前主流的混合处理框架主要为Spark和Flink。混合处理系统大数据框架一些处理框架可同时处理批处理和流处理工作负载。这些框架可以用相同或相关的组件和API处理两种类型的数据,借此让不同的处理需求得以简化,这就是混合处理系统。混合出来系统意在提供一种数据处理的通用解决方案。如果将云计算与大数据进行一些比较,最明显的区分在两个方面:海量数据存储分布式并行计算海量数据管理提供机遇海量业务数据的创新型服务通过云计算技术的不断发展降低大数据业务的成本SaaS(软件及服务)PaaS(平台即服务)IaaS(基础设施即服务)大数据云计算大数据与云计算0102在概念上两者有所不同,云计算改变了IT,而大数据则改变了业务。然而大数据必须有云作为基础架构,才能得以顺畅运营。大数据和云计算的目标受众不同,云计算是CIO等关心的技术层,是一个进阶的IT解决方案。而大数据是CEO关注的、是业务层的产品,而大数据的决策者是业务层。概念区分目标受众区分操作日志交易数据位置信息系统日志图片应用日志视频数据库日志文档人工智能行为个人信用安全习惯健康企业人工智能可学习大量大数据,高效分析挖掘出数据价值。在概念上两者有所不同,大数据和云计算可以理解为技术上的概念,人工智能是应用层面的概念,人工智能的技术前提是云计算和大数据。
在实现上,大数据主要是依靠海量数据来帮助人们对问题作出更好的判断和分析,而人工智能一种计算形式,它允许机器执行认知功能,例如对输入起作用或作出反应,类似于人类的做法,并能够替代人类对认知结果作出决定。如果将大数据与人工智能进行一些比较,最明显的区分在两个方面:大数据与人工智能工作汇报概念区分形式区分010201经典比特与量子比特量子计算的原理是这样的:一个量子位(也叫做量子比特,hi量子计算和量子新的基本概念,目前可以用光子、电子、原子等实现)可以同时表示0和1,也就是说,有一定的概率是0,有一定的概率是1,概率和是1。而如果人们使用设备测量,测量本身会对量子位造成影响,使得量子位的确切地变成0或者1。测量一个量子位若干此,大概会出现50%几率是1,50%几率是是0,机会均等,测量次数越多,概率越稳定。图1-10显示了经典比特与量子比特,在经典比特中的状态只会出现0或者1,就像一枚硬币,不是正面朝上,就是反面朝上。而在量子比特中测量时则各有50%的概率得到0或者1态,也就是说,量子比特被检测之前一直处于介于|0>和|1>之间的一个连续态。而测量时,仅概率性的给出0或1作为检测结果。01020304大数据与量子计算大数据的国家战略意义大数据是一个事关我国经济社会发展全局的战略性产业,大数据技术为社会经济活动提供决策依据,提高各个领域的运行效率,提升整个社会经济的集约化程度,对于我国经济发展转型具有重要的推动作用。如何应对大数据时代的到来已经成为了每一个企业需要面对的问题。2016-2021年中国大数据市场规模预测趋势图1.2大数据的意义大数据的企业意义应用于服务层结果预测(云标签、聚类图、空间信息流、关系图)模型呈现(模型预测、机器学习、建模仿真)数据流分析与挖掘层数据分析(基础分析、多位分析、数据挖掘、实时分析、自助分析、数据共享)数据挖掘(分类、估计、预测相关性分组复杂数据类型挖掘)组织与管理层数据管理(云储存、分布式文件系统)数据存储(关系数据库、NOSQL、SQL)产生与聚集层数据预处理(提取、清洁、标注、转换、加载)数据采集(云化ETL、流数据处理、爬虫)数据源互联网、物联网、企业数据、政府数据等数据标准数据安全IT基础1.3大数据的产业链分析基础支撑可视化监控游戏设计支撑运营活动支撑数据收集定制提取KPI追踪游戏活动监控………版本和功能效果分析版本功能策划和建议数值配平的建议验证………活动效果分析活动策划和建议数据库营销和建议………运营分析EDCBA本章小结大数据(bigdata),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据一般具有四个特征:数据量大、数据类型繁多、数据产生速度快以及数据价值密度低。大数据的应用无处不在,从金融业到娱乐业,从制造业到互联网行业,从物流业到运输业,到处都有大数据的身影。大数据的关键技术包含数据采集、大数据预处理、大数据存储和大数据分析挖掘。按照对所处理的数据形式和得到结果的时效性分类,大数据处理框架可以分为三类:批处理系统、流处理系统和混合处理系统。1.4本章小结安装linux系统1.5实训1、首先安装虚拟机软件,如图1-13和图1-14所示。图1-13运行虚拟机图1-14安装虚拟机安装linux系统2、创建虚拟机,如图1-15和图1-16所示。图1-15创建虚拟机图1-16安装虚拟机向导安装linux系统图1-17安装Linux系统图1-18进入虚拟机界面安装linux系统图1-19安装完成后的界面图1-21使用Linux系统思政案例Python爬虫、数据清洗和数据可视化大数据分析大数据与人工智能技术丛书了解爬虫的定义掌握Python开发运行环境使用Python书写爬虫使用爬虫进行网页内容的抓取本章学习目标第二章爬虫与大数据网络爬虫简介2.1爬虫的基本概念网络爬虫(WebSpider)又称之为网络机器人、网络蜘蛛,是一种通过既定规则,能够自动提取网页信息的程序。网络爬虫也叫网络机器人,可以代替人们自动化浏览网络中的信息,进行数据的采集与整理。它是一种程序,基本原理是向网站/网络发起请求,获取资源后分析并提取有用数据。发送请求获取响应内容解析内容保存数据每一个程序都有自己的规则,网络爬虫也不例外。它穿梭于全球各个网站中间,会根据人们施加的规则去采集信息,我们称这些规则为网络爬虫算法搜索引擎在网络发展伊始,全球范围内能提供信息的网站数量不多,用户也不多。互联网只是文件传输协议(FTP)站点的集合,用户可以在这些站点中导航以找到特定的共享文件。为了查找和组合互联网上可用的分布式数据,人们创建了一个自动化程序,称为网络爬虫/机器人。可以抓取网上的所有网页,然后将所有页面上的内容复制到数据库中制作索引。这也是最早期的搜索引擎。搜索引擎的爬虫是善意的,可以检索网络中一切信息,并提供给其他用户访问,为此它们还专门定义了robots.txt文件,作为君子协议。如今随着互联网的高速发展,我们能够在任何一个搜索引擎中看到来自全球各个网站的信息。百度搜索引擎的爬虫叫做百度蜘蛛(Baiduspider),360的爬虫叫360Spider,搜狗的爬虫叫Sogouspider,必应的爬虫叫Bingbot。搜索引擎离不开爬虫。网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。该协议是国际互联网界通行的道德规范,虽然没有写入法律,但是每一个爬虫都应该遵守这项协议。搜索引擎的爬虫搜索引擎的爬虫SearchenginecrawlerRobots.txt可以让蜘蛛更高效的爬行网站;可以阻止蜘蛛爬行动态页面,从而解决重复收录的问题;可以减少蜘蛛爬行无效页面,节省服务器带宽;Robots.txt的作用必须是txt结尾的纯文本文件;文件名所有字母必须是小写;文件必须要放在网站根目录下;创建robots.txt文件它必须位于域名的根目录中并被命名为"robots.txt"。位于子目录中的robots.txt文件无效,因为漫游器只在域名的根目录中查找此文件。robots.txt自身是一个文本文件Robots协议Robots协议-RobotaExclusionStandard,网络爬虫排除标准Robots协议就是告知网络爬虫哪些可以抓取,哪些不允许抓取,网站讲robots.txt文件存储在根目录下。如:/robota.txt
淘宝的robots协议地址截取部分内容:User-agent:Baiduspider##对象为百度蜘蛛。Allow:/article##允许访问article根目录。Allow:/oshtml##允许访问oshtml根目录。Allow:/wenzhang##允许访问wenzhang根目录。Disallow:/product/##不允许访问product根目录。Disallow:/##不允许访问根目录*表示所有/表示根目录以
Allow项的值开头的
URL是允许robot访问的。例如,Allow:/article允许百度爬虫引擎访问/article.htm、/article/http://12345.com
等。01User-agent:*(定义所有搜索引擎)
User-agent:Googlebot(定义谷歌,只允许谷歌蜘蛛爬取)
User-agent:Baiduspider(定义百度,只允许百度蜘蛛爬取)02以
Disallow项为开头的链接是不允许百度爬虫引擎访问的。例如,Disallow:/product/不允许百度爬虫引擎访问/product/http://12345.com
等。03禁止搜索引擎抓取特定目录:User-agent:*Disallow:/admin/
Disallow:/tmp/
Disallow:/abc/该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。04爬虫与反爬虫一些企业为了保证服务器的正常运转,降低服务器的运转压力与成本,不得不使出各种各样的手段来阻止爬虫工程师毫无节制地向服务器索取资源,这种行为我们称之为反爬虫。在爬虫与反爬虫的较量上,一些反爬手段常常会让人津津乐道,比如,文本混淆反爬虫、动态渲染反爬虫、信息校验反爬虫、代码混淆反爬虫……等等。通过User-Agent来控制访问无论是浏览器还是爬虫程序,在向服务器发起网络请求的时候,都会发过去一个头文件:headers。对headers进行伪装。目前,网络上有很多开源爬虫软件可供使用者选择,常见的有Larbin、Nutch、Heritrix等,开源爬虫是已成型的爬虫软件,用户可以直接使用开源爬虫抓取网络上的网页资源。01什么是反爬虫02反爬虫手段04爬虫软件03headers伪装网络爬虫的类型网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。通用网络爬虫又叫作全网爬虫,顾名思义,爬取的目标资源在全互联网中,所爬取的目标数据是巨大的,并且爬行的范围也是非常大的。通用网络爬虫通用网络爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。正是由于其爬取的数据是海量数据,所以对于这类爬虫来说,其爬取的性能要求是非常高的。这种网络爬虫主要应用于大型搜索引擎中,有非常高的应用价值。通用网络爬虫在爬行的时候会采取一定的爬行策略,主要有深度优先爬行策略和广度优先爬行策略。网络爬虫的类型聚焦、增量式和深层网络爬虫聚焦网络爬虫也叫主题网络爬虫,是按照预先定义好的主题有选择地进行网页爬取的一种爬虫。聚焦网络爬虫主要应用在对特定信息的爬取中,主要为某一类特定的人群提供服务。增量式网络爬虫,在爬取网页的时候,只爬取内容发生变化的网页或者新产生的网页,对于未发生内容变化的网页,则不会爬取。增量式网络爬虫在一定程度上能够保证所爬取的页面,尽可能是新页面。在互联网中,网页按存在方式分类可分为表层页面和深层页面。表层页面指的是不需要提交表单,使用静态的链接就能够到达的静态页面;而深层页面是需要提交一定的关键词之后才能够获取得到的页面。而在互联网中,深层页面的数量往往比表层页面的数量要多很多。聚焦网络爬虫增量式网络爬虫深层网络爬虫控制中心URL队列初始URL集合内容评价模块链接评价模块链接过滤模块新URL页面爬行模块互联网网页页面数据库页面分析模块索引数据库主题用户检索爬取的顺序相对于通用网络爬虫,爬取的顺序并不是那么重要。但聚焦网络爬虫,爬取的顺序与服务器资源和宽带资源有关,所以非常重要,一般由爬行策略决定。爬行策略主要有深度优先爬行策略、广度优先爬行策略、大站优先策略、反链策略、其他爬行策略等。假设有一个网站,ABCDEFG分别为站点下的网页,如图所示表示网页的层次结构。假如此时网页ABCDEFG都在爬行队列中,那么按照不同的爬行策略,其爬取的顺序是不同的。
深度优先爬行策略:A→D→E→B→C→F→G
广度优先爬行策略:A→B→C→D→E→F→G网站ABCGFED++爬虫技术同样高并发能力非常强。搜索引擎(SearchEngine),例如传统的通用搜索引擎Baidu、Yahoo和Google等,是一种大型复杂的网络爬虫,属于通用性网络爬虫的范畴。在大数据架构中,数据收集与数据存储占据了极为重要的地位,可以说是大数据的核心基础,而爬虫技术在这两大核心技术层次中占有很大的比例。PHPJavaPythonNode.JS适合开发大型爬虫项目。爬虫框架非常丰富,并且多线程的处理能力较强,并且简单易学、代码简洁,优点很多。后端处理很强,代码很简洁,模块也较丰富,但是并发能力相对来说较弱。运行速度快,适合开发大型爬虫项目,成本较高。支持高并发与多线程处理。C++:Go语言2.2Python介绍Python语言具有如下特点:Python简介Python是一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明。Python的第一个公开发行版于1991年发行。开源、免费、功能强大语法简洁清晰,强制用空白符(whitespace)作为语句缩进具有丰富和强大的库易读、易维护,用途广泛解释性语言,其变量类型可改变,类似于JavaScript语言Python下载Python的开发环境十分简单,用户可以登录其官网/中直接下载Python的安装程序包,如若是安装在Windows操作系统上的Python,请下载“64位下载Windowsx86-64executableinstaller”版本。目前,Python有两个主流版本,一个是Python2.7,另外一个是Python3.7,这两个版本在语法上有些差异。本书搭建的Python开发环境为Python3.7。Python安装下载Python3.7安装程序包后直接安装。Python安装在不改变默认设置的情况下单击“Next”进行下一步。Python安装等待Python进度条加载完毕安装完毕,点击“Close”关闭安装界面Python安装完成后验证下Python是否安装成功,打开应用程序Python,可以看到pythonIDLE,同时也可以看到python的版本号是3.7。Python3.8Python版本Python启动Anaconda的Python开发环境Python安装完成后在Windows的启动菜单中可以看到Python3.7的启动菜单,启动Python3.7可以看到Python的命令行界面,其中“>>>”后面就是输入命令的地方。启动Python3.7,在程序编译环境中输入程序:print("Hi,MyFirstPythonApplication!")键入“回车”按钮,就可以看到运行结果Python数据类型整型,简答表述就是平时所见的整数。Python3的整型已经与长整型进行了无缝结合,现在的Python3的整型类似于Java的BigInteger类型,它的长度不受限制浮点型就是平时所说的小数,例如圆周率3.14是浮点型,例如地球到太阳的距离大约1.5亿千米也是浮点型。Python区分整型和浮点型的唯一方式就是看有没有小数点。在Python3环境下浮点型数据输出:>>>a=0.0000000000000000000025>>>a2.5e-21>>>整型和浮点型1、整型2、浮点型1.整型2.浮点型布尔类型事实上是特殊的整型,布尔类型用True和False来表示“真”与“假”,同时布尔类型可以当作整数来对待,True相当于整型值1,False相当于整型值0。t=Truef=Falseprint(type(t))#运行结果为:<class'bool'>print(tandf)#逻辑AND运算;运行结果为:Falseprint(torf)#逻辑OR运算;运行结果为:Trueprint(nott)#运算NOT运算;运行结果为:Falseprint(t!=f)#运算XOR运算;运行结果为:Truet=Truef=Falseprint(type(t))#运行结果为:<class'bool'>print(tandf)#逻辑AND运算;运行结果为:Falseprint(torf)#逻辑OR运算;运行结果为:Trueprint(nott)#运算NOT运算;运行结果为:Falseprint(t!=f)#运算XOR运算;运行结果为:True布尔类型在Python3环境下布尔类型的运算都是可以的(最后的例子报错是因为False相当于0,而0不能作为除数)。>>>True+True2>>>True*True1>>>True*False0>>>True/FalseTraceback(mostrecentcalllast):File”<stdin>”,line
1,in<module>ZeroDivisionError:divisionbyzero>>>3.布尔类型字符串类型字符串是程序中最常用的一种数据类型,字符串可以包含中文与英文等任何字符,在内存中用Unicode编码存储,但是存储到磁盘中时往往采用GBK或者UTF-8等其他编码形式。获取字符串长度函数len字符串s的长度为len(s),例如:len("abc")字符串长度为3;len("呵呵abc")字符串长度为5。s="ILU"n=len(s)foriinrange(n):print(s[i])对应输出的结果是:ILUs="huangyuan"n=len(s)foriinrange(n):print(s[i])huang
yuans1="huang"s2="lilei"print(s1+s2)huanglilei读出字符串中的各个字符要得到字符串其中的第i个字符,可以像数组访问数组元素那样用s[i]得到这些字符,其中s[0]是第1个字符,s[1]是第2个字符,……,s[len(s)-1]是最后一个字符。例如:右图。4.字符串类型字符串类型两个字符串a、b可以比较大小,比较规则是按各个对应字符的Unicode编码,编码大的一个为大。比较a[0]和b[0],如果a[0]>b[0],则a>b;如果a[0]<b[0],则a<b;如果a[0]=b[0],则继续比较a[1]和b[1]。比较a[1]和b[1],如果a[1]>b[1],则a>b;如果a[1]<b[1],则a<b;如果a[1]=b[1],则继续比较a[2]和b[2]。假如c是一个大写英文字母,则ord(c)是它的编码,ord(c)-ord("A")是它相对"A"的偏移量,ord("a")是"a"的编码,显然ord("a")+ord(c)-ord("A")是c对应的小写字母的编码,因此chr(ord("a")+ord(c)-ord("A"))就是c对应的小写字母。例如:c="B"d=chr(ord(a)+ord(c)-ord("A"))print(d)对应输出的结果是:b同理,如果c是一个小写的英文字母,那么chr(ord("A")+ord(c)-ord("a"))是它对应的大写字母。c="B"a="a"d=chr(ord(a)+ord(c)-ord("A"))print(d)b字符串大小的比较英文字母的大小写转换如果知道一个符号的编码为n,那么可以用chr(n)函数把它转为对应的字符,例如:a=chr(119)b=chr(101)print(a,b)对应输出的结果是:we编码转换为字符字符串类型其中start、end、step三个参数都是可选的,冒号是必须的。该函数的含义是从start开始(包括string[start]),以step为步长,获取到end的一段元素(注意不包括string[end])。格式:s.upper()作用:返回一个字符串,把s中所有的小写字符转换为大写字母。格式:s.lower()功能:返回一个字符串,把s中所有的大写字母转换为小写字母。格式:s.find(t)作用:返回在字符串s中査找t子串第一个出现的位置下标,如不存在就返回-1。格式:s.rfind(t)作用:返回在字符串s中査找t子串最后一次出现的位置下标,如不存在就返回-1。s="welcome"c="co"print(s.find(c))格式:s.index(t)作用:返回在字符串s中査找t子串第一个出现的位置下标,如不存在就报错误。s="welcome"c="me"print(s.index(c))⑥字符串函数(1)求字符串的子串函数string[start:end:step](2)字符串大小写转换函数upper()、lower()(3)字符串查找函数find(t)、rfind(t)(4)字符串索引查找函数index(t)格式:s.startswith(t)作用:判断字符串s是否以子串t开始,返回逻辑值。格式:s.endswith(t)作用:判断字符串s是否以子串t结束,返回逻辑值。s="welcome"c="we"print(s.startswith(c))格式:s.lstrip()作用:返回一个字符串,去掉了s中左边的空格。格式:s.rstrip()作用:返回一个字符串,去掉了s中右边的空格。格式:s.strip()作用:返回一个字符串,去掉了s中左边与右边的空格,等同s.lstrip().rstrip()。格式:s.split(sep)作用:用sep分割字符串s,分割出的部分组成列表返回。其中sep是分隔符,结果是字符串按sep字符串分割成多个字符串,这些字符串组成一个列表,即函数split调用后返回一个列表。hello='hello'#字符串的字符使用单引号world="world"#字符串的字符使用双引号.print(len(hello))#len()函数表示获取字符串的长度;运行结果为:5hw=hello+''+world#字符串的连接print(hw)#运行结果为:helloworldhw12='%s%s%d'%(hello,world,12)#按格式输出字符串print(hw12)#运行结果为:helloworld12字符串类型⑥字符串函数(5)字符串判断函数startswith(t)、endswith(t)(6)字符串去掉空格函数lstrip()、rstrip()、strip()(7)字符串分离函数split(sep)列表类型列表是Python中最常用的数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字表示它的位置或索引,第1个索引值是0,第2个索引值是1,以此类推。只要把逗号分隔的不同的数据项使用方括号括起来即可创建一个列表,例如:list1=[1,2,3,4,’5’,6,2]列表的元素可以重复,如list1中的2重复出现。列表中的元素类型不一定要完全一样,如list1中有字符串也有数值。使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符,截取的方法与字符串中截取的方法类似。例如:list1=[1,2,3,4,5,6,7]print(list1[1:5])对应输出的结果是:[2,3,4,5]5.列表类型创建一个列表访问列表中的值可以使用del语句来删除列表中的元素。使用in或者notin操作判断一个元素是否在或者不在列表中。用for循环依次输出列表中的三个元素cat,dog和monkey。animals=['cat','dog','monkey']foranimalinanimals:print(animal)更新列表可以对列表的数据项进行修改或更新,也可以使用append方法来添加列表项。删除列表元素列表联合操作可以使用"+"来连接多个列表。列表的截取L[start:end:step]其中start、end、step三个参数是可选的,冒号是必须包含的。该函数的含义是从start开始(包括L[start],以step为步长,获取到end的一段元素(注意不包括L[end])。判断一个元素是否在列表中元组类型元组也是Python中常用的一种数据类型,它是tuple类的类型,与列表list几乎一致。元组与列表的区别如下:6.元组类型元组数据使用圆括号()来表示,如t=(’a’,’b’,’c’,’d’,’e’,’f’)。元组数据的元素不能改变,只能读取。类型转换数据类型紧密相关的函数:int()、float()和str()。int()的作用是将一个字符串或浮点数转换为一个整数。如图所示是在Python3环境中的int类型转换输出示意图。float()的作用是将一个字符串或整数转换成一个浮点数,也即是转换为小数。如图所示是在Python3环境中的float类型转换输出示意图。str()的作用是将一个数或任何其他类型转换成一个字符串。如图所示是在Python3环境中的str类型转换输出示意图。7.类型转换123获得关于类型的信息有时候可能需要确定一个变量的数据类型,例如当需要用户输入一个整数,但用户却输入一个字符串,就有可能引发一些意想不到的错误或导致程序崩溃!Python提供了一个函数可以明确告诉我们变量的类型,这就是type()函数。money=int(input('你一个月工资多少钱?'))#将输入的工资数(字符串),强制转换为整数ifmoney>=10000:#当工资数(整数)大于等于10000(整数)时
print('土豪我们做朋友吧!')#打印if条件下的结果elif5000<money<10000:#当工资数(整数)大于5000(整数)小于10000(整数)时
print('我们都是搬砖族。。。')#打印elif条件下的结果else:#当工资数(整数)小于等于5000(整数)时
print('我负责赚钱养家,你负责貌美如花~')#打印else条件下的结果age='59'choice=input('请你猜一下斯内普教授的年龄:')ifchoice==age:print('猜对惹~你好厉害!ヽ✿゜▽゜)ノ~~~')elifchoice<age:print('斯内普的提示:你猜小了(;´д`)ゞ。。。。')else:print('斯内普的提示:乃猜大了惹(>﹏<)~~')8.获得关于类型的信息2.3爬虫相关知识任意打开一个网页(/),鼠标右键单击,从弹出的快捷菜单中选择“检查”,即可查看到该网页结构的相应代码无论我们通过浏览器打开网站、访问网页,还是通过脚本对URL网址进行访问,本质上都是对HTTP服务器的请求,浏览器上所呈现的、控制台所显示的都是HTTP服务器对我们请求的响应。源代码与HTML源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件。计算机源代码的目的是将人类可读的文本翻译成计算机可执行的二进制指令。HTML,是HypertextMarkupLanguage的英文缩写,即超文本标记语言,是制作网页内容的一种标签语言。HTML通过再内容上附加各种标签,在浏览器中正确展示内容。什么是HTTP、HTTP的请求过程超文本传输协议(HTTP,HyperTextTransferProtocol)用于从www服务器传输超文本到本地浏览器的传输协议;保证计算机正确快速地传输超文本文档;确定传输文档中的哪一部分;以及哪部分内容首先显示等。1.浏览器向DNS发起IP请求;2.浏览器从DNS处获得IP地址;3.浏览器向服务器发送请求资源;4.服务器将请求返回浏览器。什么是HTTPHTTP的请求过程什么是URL、URL访问如下面的URI:
/myhtml/html1223/我们可以这样解释它:①这是一个可以通过HTTP协议访问的资源,②位于主机上,③通过路径“/myhtml/html1223/”访问。
使用超级文本传输协议HTTP,提供超级文本信息服务的资源。
例:/channel/welcome.htm
其计算机域名为。超级文本文件(文件类型为.html)是在目录/channel下的welcome.htm。这是中国人民日报的一台计算机。
URI通常由三部分组成:①访问资源的命名机制;②存放资源的主机名;③资源自身的名称,由路径表示。爬虫最主要的处理对象就是URL,它根据URL地址取得所需要的文件内容,然后对它进行进一步的处理。因此,准确地理解URL对理解网络爬虫至关重要。什么是URLURL访问Request(请求)。每一个用户打开的网页都必须在最开始由用户向服务器发送访问的请求。Response(响应)。服务器在接收到用户的请求后,会验证请求的有效性,然后向用户发送相应的内容。客户端接收到服务器的相应内容后,再将此内容展示出来,以供用户浏览。请求与响应的过程、结构网页请求和响应的过程网络爬虫主要的操作对象:HTTP请求(Request)、HTTP响应(Response)HTTP请求和响应都由两部分组成:消息头(MessageHeader)、消息体(MessageBody)请求结构响应结构HTTP的Methods(请求方法)指定客户端想对指定的资源/服务器作何种操作。常见的Methods有:GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE等。HTTP的Methods(请求方法)HTTP各个请求方法的详细描述GET:请求指定的页面信息,并返回实体主体。HEAD:类似于GET请求,只不过返回的响应没有具体的内容,用于获取报头。POST:向指定资源提交数据进行处理请求。数据被包含在请求体内,POST请求可能导致新的资源建立/已有资源修改。GET方法用来请求已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。将需要的参数附在URL的后面,以“?”分隔URL和参数,多个参数之间用“&”连接。对微博的GET请求:/signup/signup/php?inviteCode=2388493434POST方法向目的服务器发出请求,要求它接受附在请求后的实体,并把它作为附在请求队列中请求URL所指定的附加新子项。POST请求会把请求的数据放置再HTTP请求包的包体中。POST方法HTTP的MethodsGET与POST的对比GETPOST后退按钮/刷新无害数据被重新提交缓存能被缓存不能历史参数保留再浏览器历史中不会保存对数据长度限制URL最大长度2048个字符无限制对数据类型限制只允许ASCII字符无限制安全性安全性较差,因为发送的数据是URL的一部分POST比GET更安全,参数不会保存可见性数据在URL中对所有人可见数据不会显示在URL中ChromeInspect监控网络交互过程响应状态码响应状态码一般由3位数字组成,标志着服务器对客户端请求的处理结果。响应状态码是我们调整爬虫抓取状态的重要参考。我们平时打开一个网页,显示的404就是响应状态码的一种。1开头的HTTP状态码表示临时响应并需要请求者继续执行操作的状态码。2开头的HTTP状态码表示请求成功。比如做常见的200:一般请求成功的状态码。3XX重定向状态码,也是常见的状态码。比如303:指示可在另一个URI之下找到该请求的响应。4开头的HTTP状态码表示请求出错。比如404服务器找不到请求的网页。5开头的状态码比如503(服务不可用)服务器目前无法使用(由于超载或停机维护)。12345爬虫实现过程用户使用爬虫来获取网页数据的时候,一般要经过以下几步:发送请求获取响应内容解析内容保存数据第三方库的安装:打开终端,输入如下命令:pipinstallrequests网络爬虫使用Python网络库和远程服务器建立联系。URLLIB是Python自带的标准库,无需安装。提供如下功能:网页请求响应获取代理和cookie设置异常处理URL解析爬虫使用步骤Python网络爬虫需要的内置库以及第三方库Python网络爬虫需要的内置库Python库说明urllib提供一系列用于操作URL的方法,并以urlopen函数的形式提供接口requests基于urllib的HTTP库cookielib提供可存储cookie的对象,配合urllib访问网络re提供Python语言对正则表达式的支持lxmlPython语言中处理XML和HTML的库BeautifulSoup从HTML和XML中提取数据的Python库urllib.request—打开网页的基础模块当我们知道一个网站的URL时,使用python下的urllib组件,即可实现简单的网页抓取。urllib模块urllib是URL和lib两个单词共同构成的,URL就是网页的地址,lib是library(库)的缩写。URL的一般格式为(带方括号[]的为可选项):protocol://hostname[port]/path/[;parameters][?query]#fragment。urlib.request:打开和读取url
urllib.error:包含由request产生的错误
url.parse:解析url通过urllib.request.urlopen()这个函数接口就可以打开一个网站,它主要有url与data两个输入参数。urllib模块urllib.request.urlopen()函数访问网页,urllib.request.urlopen()函数参数如下:urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
Urllib结构与格式Urllib组件的主要模块在Urllib模块中可以使用urlopen函数
urllib.request.urlopen()函数参数功能参数功能url用于打开的网址datadata用来指明发往服务器请求中的额外的参数信息,data默认是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。timeout设置网站的访问超时时间cafile、capath、cadefault用于实现可信任的CA证书的HTTP请求context实现SSL加密传输创建一个表示指定url的类文件对象,以此为出发点获取数据,并操作数据。Urllib.request.urlopen(url.data=[timeout,]*Cafile=None.capath=None,Cadefault=False.context=None)url:表示指定的资源路径,一般是http或者ftpl路径。data:表示以get或者post方式提交到url的数据timeout:表示用于超时的设置。Urlopen函数语法输入参数完成对百度的GET请求importurllib.requestresponse=urllib.request.urlopen('')print(response.read().decode('utf-8'))<metahttp-equiv="content-type"content="text/html;charset=utf-8">importurllib.parseimporturllib.requestdata
=
bytes(urllib.parse.urlencode({'hello':'world'}),encoding='utf-8')#传入data参数即完成post请求response=urllib.request.urlopen('/',data=data)print(response.read()){'hello':'world'}#传入数据会进行显示使用urllib获取响应信息[例2-3]使用urllib获取响应信息,代码如下:importurllib.requesturl="/"response=urllib.request.urlopen(url)print(response.getcode())print(response.geturl())print(response.getheaders())属性说明r.status_codeHTTP请求的返回状态,200表示连接成功,404表示失败r.textHTTP响应内容的字符串形式,(即url对应的页面内容)r.encoding从HTTPheader中猜测的响应内容编码方式r.contentHTTP响应内容的二进制形式r.apparent_encoding根据网页内容分析出的编码方式使用urllib获取响应信息importurllib.requestresponse=urllib.request.urlopen('')print(response.status)print(response.getheaders())print(response.getheader('Server'))importurllib.requestresponse=urllib.request.urlopen('')print(response.read().decode('utf-8'))使用urllib获取响应信息importurllib.requesturl="/"response=urllib.request.urlopen(url)#按行读取#print(response.readline().decode())#获取多行装入列表#print(response.readlines())#服务器响应的状态码print(response.getcode())#响应的来源print(response.geturl())#获取响应头print(response.getheaders())定制headers定制headers另一种方法。importurllib.requestimporturllib.parseurl='/post'dict={'name':'French'}data=bytes(urllib.parse.urlencode(dict),encoding='utf-8')req=urllib.request.Request(url=url,data=data,method='POST')#使用add_headers方法增加headerreq.add_headers=('User-Agent','Mozilla/5.0(WindowsNT6.3;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/55.0.2883.87Safari/537.36')response=urllib.request.urlopen(req)print(response.read().decode('utf-8'))Requests库Requests是用Python语言编写,基于urllib,采用Apache2Licensed开源协议的HTTP库。它比urllib更加方便,可以节约开发者大量的工作,完全满足HTTP测试需求。Requests库的安装十分简单,一般可在Windows命令行中输入:pipinstallrequests来完成下载安装。在安装完成后,在Python环境中即可导入该模块,如果不报错则表示安装成功。导入模块命令如下:importrequestsRequests库Requests库安装使用GET方式抓取数据,代码如下:importrequestsurl=""strhtml=requests.get(url)print(strhtml.text)语句含义如下:importrequests:导入requests库url="":访问目标网页strhtml=requests.get(url):将获取的数据保存到strhtml变量中print(strhtml.text):打印网页源码使用GET方式抓取数据,代码如下:Requests库importrequestsr=requests.get("/",timeout=1)print(r.status_code)该例使用timeout来设置响应时间,其中
timeout并不是整个下载响应的时间限制,而是如果服务器在timeout秒内没有应答,将会引发一个异常。例2-5使用GET方式读取网页数据,并设置超时反应Requests库importrequestsr3=requests.get("/net/a/04/link?appid=100140019&url=http%3A%2F%2F4%2Fpreview%2Finternettv%2Fsp_images%2Fott%2F2019%2F5%2F24%2Fdianying%2F324910%2F20190524172409419-new.jpg")withopen('baidu_logo.png','wb')asf:f.write(r3.content)该例抓取了网页中的图片,其中图片地址为/net/a/04/link?appid=100140019&url=http%3A%2F%2F4%2Fpreview%2Finternettv%2Fsp_images%2Fott%2F2019%2F5%2F24%2Fdianying%2F324910%2F20190524172409419-new.jpg例2-6使用Requests库抓取网页图片Requests库解析HTML页面的源代码工具BeautifulSoup
提供一些简单的、Python式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。目前,BeautifulSoup已成为和lxml、html5lib一样出色的Python解释器(库),并为用户灵活地提供不同的解析策略或强劲的速度。BeautifulSoup将复杂的HTML文档转换为一个树形结构来读取,其中树形结构中的每个节点都是Python对象,并且所有对象都可以归纳为Tag、NavigableString、BeautifulSoup以及Comment等4种。要使用BeautifulSoup
库首先需要在Python3中安装,可以直接在cmd下用pip3命令进行安装:pipinstallbeautifulsoup4BeautifulSoup库12345解析HTML页面的源代码工具1.正则表达式2.lxml3.BeautifulSoupBeautifulSoup准备一个网页,命名为2-1.html,内容如下:<!DOCTYPEhtml><htmllang="zh"><head><title>这是我的网页</title></head><body><h1>我的第一个标题</h1><p>我的第一个段落。</p></body></html>在Python3中导入BeautifulSoup库获取该网页信息,代码如下:frombs4importBeautifulSoupfile=open('2-1.html','rb')html=file.read()bs=BeautifulSoup(html,"html.parser")#缩进格式print(bs.prettify())#格式化html结构print(bs.title)#获取title标签的名称print()#获取title的nameprint(bs.title.string)#获取head标签的所有内容print(bs.head)该例使用BeautifulSoup获取2-1.html网页的相关信息,如网页结构,网页title标签的名称,网页head标签的所有内容等。例2-7使用BeautifulSoup获取网页信息正则表达式正则表达式又称为规则表达式,是对字符串操作的一种逻辑公式。其特点是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。通常被用来检索、替换那些符合某个模式(规则)的文本。\d{15}\d{17}([0-9]|X)这一串奇怪的字码代表什么?居民身份证的正则式表达。正则表达式是对字符串进行操作的一种逻辑公式用事先定义好的字符和字符组成,组成“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式正则表达式的匹配过程依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功。一旦有匹配不成功的字符则匹配失败。正则表达式引擎正则表达式对象匹配结果正则表达式文本需要匹配的文本编译匹配正则表达式文本正则表达式
说明\d“\d”代表一个数字*“*”代表任意的字符[]“[]”内的字符只能取其一{}“{}”指定字符的个数+“+”表示前一个字符至少出现一次—“—”表示一个范围?“?”表示前一个字符可出现0次或1次代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束代码/语法说明*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n次或更多次{n,m}重复n到m次比如,声明“电话号码”。该数据类型由“***—********”组成,如,可使用正则表达式书写为"\d{3}-d{8}"。再比如,声明“密码”。该数据类型由“*********”组成,前面3位是字母,后面6位是数字,如“abc123456”,可使用正则表达式书写为"[a-z]{3}[0-9]{6}"。正则表达式的应用正则表达式有如下常见应用:替换指定内容数字替换删除指定字符删除空行0\d\d-\d\d\d\d\d\d\d\d匹配这样的字符串:以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字。我们也可以这样写这个表达式:0\d{2}-\d{8}。这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)。\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。\w匹配字母或数字或下划线或汉字。\ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。\b\w{6}\b
匹配刚好6个字符的单词。12345正则表达式的应用捕获组用小括号包裹起来的表达式去匹配字符串。把表达式中的括号进行编号,以左括号出现的前后顺序为准,第一个出现的分组,组号即为1组号0代表正则表达式整体。例如,正则表达式(\d{4})-(\d{2}-(\d\d))匹配2019-04-19。编号捕获组匹配内容0(\d{4})-(\d{2}-(\d\d))2019-04-191(\d{4})20192(\d{2}-(\d\d))04-193(\d\d))190\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(,一种是4位区号,7位本地号。(\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:\d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。捕获组Re库Rpile()编译正则字符。Re.match()匹配正则表达式与字符串。Re.search()扫描整个字符串并返回第一个成功的匹配。Re.findall()返回全部匹配的字符串。Re库的主要函数importrea="student"str1="teacherandstudent"ret=re.search(a,str1)print(ret)该例导入了Python中的re模块,并使用其中的search()函数从字符串“teacherandstudent”中搜索“student”第一次出现的匹配情况【例2-6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年遂宁市安居区政务服务中心(窗口人员)招聘考试备考题库及答案详解
- 2026年舟山市定海区医疗系统事业编人员招聘笔试备考试题及答案详解
- 2026年辽宁省沈阳市工会人员招聘笔试模拟试题及答案详解
- 2026年湛江市霞山区政务服务中心(窗口人员)招聘考试备考试题及答案详解
- 2026年苏州市平江区政务服务中心(窗口人员)招聘考试模拟试题及答案详解
- 2026年淮安市淮阴区政务服务中心(窗口人员)招聘考试备考试题及答案详解
- 2026年南宁市青秀区工会人员招聘考试备考题库及答案详解
- 2026年西安市碑林区工会人员招聘考试备考试题及答案详解
- 2026年云南省玉溪市医疗系统事业编人员招聘笔试备考试题及答案详解
- 小学教师师德师风学习心得体会(3篇)
- 动词和动词短语 复习课件 中考英语复习
- 2026年农商银行网络运维岗位题库
- 内蒙古辅警综合基础知识历年真题
- 复方比那甫西颗粒-临床药品应用解读
- 山东高速集团招聘面试题及答案
- 口腔科2025年核与辐射安全隐患自查报告
- 商贸公司财务审批流程及控制制度
- 车库门应急预案(3篇)
- 化妆教学合同协议
- 2025年河北省机关事业单位工人技能等级考试《公共基础知识》备考题及答案
- 辐射安全操作规程
评论
0/150
提交评论