版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目二:数据集准备数据爬取与清洗什么是爬虫爬虫基本流程网页基本结构审查网页元素代码实现总结网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。什么是爬虫网页的请求和响应方式是Request和ResponseRequest:用户将自己的信息通过浏览器(socketclient)发送给服务器(socketserver)Response:服务器接收请求,分析用户发来的请求信息,收到请求信息后返回数据(返回的数据中可能包含其他链接,如:image、js、css等)浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。下图为爬虫具体流程。爬虫基本流程网页一般由三部分组成,分别是HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(简称“JS”动态脚本语言),它们三者在网页中分别承担着不同的任务。HTML负责定义网页的内容CSS负责描述网页的布局JavaScript负责网页的行为网页基本结构HTML是网页的基本结构,他是网页构成的基本语言,根据HTML语法格式不同,HTML将代码分为标签、属性、文本三大结构。标签:通过<标签名></标签名>声明,简化为<标签名/>属性:通过<标签名属性名="属性值"属性名="属性值"></标签名>声明文本:通过<标签名>文字</标签名>声明
网页基本结构下图为HTML代码经过浏览器解析后形成的画面,不同标签经过解析后会形成不同的内容结果。网页基本结构CSS表示层叠样式表,用来对HTML构建的网页进行美化操作,一般我们会通过给HTML标签添加id或者class属性来通过CSS选择器选中指定标签后添加样式。下图为添加CSS代码后的网页效果。网页基本结构JavaScript负责描述网页的行为,比如,交互的内容和各种特效都可以使用JavaScript来实现。当然可以通过其他方式实现,比如jQuery、还有一些前端框架(vue、React等),不过它们都是在“JS”的基础上实现的。网页基本结构对于一个优秀的爬虫工程师而言,要善于发现网页元素的规律,并且能从中提炼出有效的信息。因此,在动手编写爬虫程序前,必须要对网页元素进行审查。本节将讲解如何使用“浏览器”审查网页元素。浏览器都自带检查元素的功能,不同的浏览器对该功能的叫法不同,谷歌(Chrome)浏览器称为“检查”,而Firefox则称“查看元素”,尽管如此,但它们的功却是相同的,本课程推荐使用谷歌浏览器。审查网页元素下面以检查百度首页为例:首先使用Chrome浏览器打开百度,然后在百度首页的空白处点击鼠标右键(或者按快捷键:F12),在出现的会话框中点击“检查”,并进行如图所示操作:审查网页元素网页的请求和响应方式是Request和ResponseRequest:用户将自己的信息通过浏览器(socketclient)发送给服务器(socketserver)Response:服务器接收请求,分析用户发来的请求信息,收到请求信息后返回数据(返回的数据中可能包含其他链接,如:image、js、css等)浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。下图为爬虫具体流程。审查网页元素网络爬虫的应用场景:主要用于互联网网页资源的获取网络爬虫需要使用到的相关模块:urllib.request模块(内置)beautifulSoup4模块(第三方模块)lxml模块(第三方模块)代码实现编写代码之前,我们需要提前安装爬虫技术需要的相关模块。打开Pycharm,点击左上角File,选择Settings,打开设置窗口,在设置窗口中选择PythonInterpreter选项查看当前项目中已经导入的所有模块,这里点击加号按钮安装新的模块。模块安装在搜索框内输入指定模块名,例如:lxml,点击下方InstallPackage即可完成模块的安装。后续所有模块的安装请参照此流程即可。模块安装有些情况下,第三方模块资源可能在国外服务器中,正常方式下载模块可能会导致连接超时,我们可以选择通过连接国内镜像服务器下载相关模块。在Pycharm下方找到Terminal选项,表示终端,点击后打开终端准备输入安装指令。模块安装在终端内输入pipinstall-i/simple模块名指令,连接国内镜像仓库下载Python所需第三方模块包。模块安装首先我们模拟向百度首页发送请求,以此来获取服务端响应的百度首页源码,然后我们将源码解析为中文编码然后输出爬取的结果。代码实现下图为爬取后的网页源代码,我们可以看出,代码现在是非常乱的,而且每一行源代码我们都爬取到了,这时需要对数据进行转换和清洗。代码实现BeautifulSoup简称BS4(其中4表示版本号)是一个Python第三方库,它可以从HTML或XML文档中快速地提取指定的数据。BeautifulSoup语法简单,使用方便,并且容易理解。beautifulSoup4常用的三种html解析器html.parser:Python自带的解析器,运行速度较快,兼容性较差(不兼容3.2版本之前的)lxml:速度非常快,兼容性很好,需要底层C语言的支持(使用windows操作系统即可)(建议使用)html5lib:速度很慢,需要额外安装html5lib库(不建议使用)lxml是Python的第三方解析库,完全使用Python语言编写,它对Xpath表达式提供了良好的支持,因此能够了高效地解析HTML/XML文档。BS4模块详解BeautifulSoup4模块提供的解析HTML的常用方法如下:
获取元素节点: (1).soup.标签名:获取匹配到的第一个标签完整内容获取属性节点: (2).soup.标签名["属性名"]:获取第一个标签中对应属性的属性值获取文本节点: (3).soup.标签名.text:获得指定标签内部的所有文本值 批量搜寻节点: (4).soup.find_all("标签名"):获取所有匹配标签的内容(参数允许接收列表) (5).soup.find_all(attrs={"属性名":"属性值"}):获取所有该属性对应的标签内容 (6).soup.find_all(text="文本值或正则"):获取所有该文本对应的文本内容BS4模块详解本节先以爬取天气为例,演示爬虫的基本流程,并对爬取的源码进行数据转换与数据提取,最终以图表的形式进行数据可视化展示。通过输入网址/weather/101070201.shtml进入天气页面。然后借助审查元素查看网页源码,我们可以发现所有温度信息都是存储在class=”tem”的p标签中。代码实现先爬取网页源代码信息,然后通过lxml模块解析网页源码,然后通过bs4模块提供的select方法利用class选择器选中对应温度的标签信息。然后剔除无关数据。代码实现定义Python列表用来容纳每一天的最高气温和最低气温数据值,然后提取每一个标签内部的气温数据装进列表中。代码实现接下来安装并引入matplotlib模块对提取后的数据进行可视化展示,matplotlib是Python第三方用来进行数据可视化的模块,这里我们使用折线图的形式进行展示。代码实现运行结果如图所示,我们可以对不同的折线进行不同的说明。图示清晰的描述了未来城市的天气情况。代码实现数据爬取与清洗简单介绍到这,本项目最终要实现爬取动物图片来制作数据集,所以接下来准备编写代码实现动物图像的数据爬取总结项目二:数据集准备数据爬取与清洗项目二:数据集准备数据持久化存储什么是数据库数据库分类数据库安装使用SQL语言简介DML操作DQL操作数据库是一个以某种有组织的方式存储的数据集合。通俗来说,数据库就是一种存储并管理数据使用的技术。什么是数据库在本项目中我们使用数据库的目的主要是将爬虫采集到的数据信息进行持久化存储,为后续神经网络的构建提供数据支持。什么是数据库数据库根据存储与管理数据的方式不同,我们可以将所有数据库分为两大类别:(1).关系型数据库(2).非关系型数据库数据库分类关系型数据库:关系数据库是由多个表组成的。每个表都是由行和列组成的。同样的,关系数据库里存放的也是一张一张的表,只不过各个表之间是有联系的。所以,简单来说:关系数据库=多张表+各表之间的关系数据库分类非关系型数据库:非关系数据库又称为NoSQL。NoSQL仅仅是一个概念,泛指非关系型的数据库,他区别于关系数据库不以表结构形式存储数据,例如:键值存储数据库、图形存储数据库、文档型数据库都可以称为非关系型数据库。数据库分类本项目中产生的数据大都是结构化数据,例如我们需要将爬取到的动物图像进行存储,那么每张图片我们都需要存储编号、图像种类、图像地址等固定信息,这时我们首选使用关系型数据库,而关系型数据库中最典型的就是MySQL数据库。数据库分类以Window系统为例,想要使用MySQL数据库完成表结构的创建和数据的增删改查操作,需要在计算机中安装MySQL服务。同时为了保证可视化操作,我们需要额外安装Navicat工具辅助我们操作数据库,具体安装流程可见“附录-数据库安装流程”,使用流程大致如下。数据库安装使用数据库安装使用1.计算机中安装MySQL服务2.计算机安装Navicat开发工具3.使用Navicat连接数据库创建表4.编写SQL代码实现数据增删改查操作根据附录安装流程安装完MySQL和Navicat后,我们可以在指定数据库中新建表结构,声明表名、类型、长度等信息,具体可参考微课视频--“表结构的创建和使用”。数据库安装使用SQL语言:结构化查询语言(StructuredQueryLanguage)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL语言简介根据SQL语言使用场景不同,SQL语言可以分为五种语法: (1).DML语法:数据操作语言,包含:insert、update、delete
(2).DQL语法:数据查询语言,包含:select
(3).DDL语法:数据定义语言,包含:create、drop、alter、truncate (4).DCL语法:数据控制语言,包含:grant、revoke(主要用于权限操作) (5).DTL语法:数据事务语言,包含:commit、rollbackSQL语言简介DML语法全称为DataManipulationLanguage,数据操作语言。主要用于操作数据库实现数据的增删改操作,项目开发中我们需要将爬取到的动物图像信息存储到数据库中,在Navicat中新建查询,在查询窗口中可以编写SQL语句,具体语法如下所示。DML操作Insert操作:用于向数据库中插入一条或者多条数据记录。以customer表为例,表结构如图所示。DML操作单行添加:一个SQL语句添加一行记录DML操作批量添加:一个SQL语句添加多行记录DML操作Update操作:用于修改数据库中已有数据的指定列信息。DML操作条件修改:修改符合条件数据的某一列信息DML操作Delete操作:用于删除表中符合条件的一行或者多行数据DML操作DQL全称DataQueryLanguage,数据查询语言。主要用户将数据库中的数据按照指定条件进行检索最终呈现给用户。本项目中我们需要将动物图像存储在数据库中后,使用查询语法将动物图像检索后进行后续数据集的制作和神经网络的构建。DQL语法大致可以包含如下内容。DQL操作DQL操作无条件查询
有条件查询
分组查询
多表查询
模糊查询
子查询以模糊查询为例,模糊查询又称为关键字查询,即:查询条件中含有指定信息的数据内容,一般可用于商城的搜索功能。DQL操作总结本节介绍了数据持久化技术--MySQL数据库的基本使用和操作流程,更多代码可以参考代码案例中的DML操作、DQL操作。数据库总结项目二:数据集准备数据持久化存储项目二:数据集准备图像数据标注与数据集制作数据标注简介Opencv简介Opencv图像标注数据集简介数据集制作代码演示数据标注是对未经处理的初级数据包括语音、图片、文本、视频等进行加工处理并转换为机器可识别信息的过程。换言之,就是从互联网上抓取、收集数据包括文本、图片、语音等等然后对抓取的数据进行整理与标注。数据标注简介我们了解到的数据标注其实就是人工智能的重要组成部分之一,人工智能组成部分有三个,分别是:算法、算力、标注。算力相当于看书需要眼睛,算法相当于需要大脑思考,标注相当于书里面的知识。有了数据,AI才能用算法+算力辨别场景进行工作。数据标注简介OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它实现了图像处理和计算机视觉方面的很多通用算法。Opencv简介有多种原因使得我们需要对图像或视频进行标注,使用OpenCV可以使得标注变得直接和简单。你可以使用它:在演示图像中添加相关信息;在物体检测中使用方框标注目标物体;在图像分割中使用不同颜色来加亮图像像素;Opencv简介在OpenCV中调用circle()函数,对应的语法为:circle(image,center_coordinates,radius,color,thickness)就像大多数OpenCV中的函数一样,第一个参数为图像;接下来两个参数定义了圆的中心坐标以及它的半径;最后两个参数说明圆的颜色和宽度;接下来我们以代码的形式展示一下标注的具体流程。Opencv图像标注Opencv图像标注以此图像为例,现在我们需要标识小狗脸部的位置首先通过opencv提供的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026学年中考历史一轮复习-新民主主义革命时期(含答案)
- 《客至》教案2025-2026学年统编版高中语文选择性必修下册
- 2026年山西铁道职业技术学院单招职业倾向性考试题库及答案详解(真题汇编)
- 2026年广东食品药品职业学院单招职业倾向性考试题库附参考答案详解(满分必刷)
- 2026年广东省深圳市单招职业适应性考试题库附答案详解(培优a卷)
- 2026年山西职业技术学院单招职业技能测试题库含答案详解
- 2026年广东岭南职业技术学院单招职业适应性考试题库带答案详解(培优a卷)
- 2026年山西职业技术学院单招职业倾向性考试题库附参考答案详解(达标题)
- 2026年平凉职业技术学院单招职业技能测试题库带答案详解(培优a卷)
- 2026年广东科贸职业学院单招综合素质考试题库及答案详解(基础+提升)
- 23、资质证书使用与管理制度
- 家谱树形图模板
- 校园文化建设情况自查报告
- 药学分子生物学:第二章 DNA的复制、损伤和修复
- 【基于7P理论的汉庭酒店服务营销策略14000字(论文)】
- 2023-2024学年度新人教版必修二Unit4 History and Traditions基础巩固练习
- 总经理财务知识培训
- GB/T 13911-1992金属镀覆和化学处理表示方法
- Unit 1 Discover useful structures 语法精讲课件 【高效识记+延伸拓展】高中英语人教版(2019)选择性必修第三册
- 高脂血症健康讲座课件
- 复测分坑作业指导书
评论
0/150
提交评论