第一章 数据概论
- 数据源的角度是多数据源和单数据源
- 数据清洗方式:独立型和依赖型
1 含义
multipurpose internet mail extensions多用途互联网邮件扩展 互联网传输文件的方法
2 组成
由两部分组成1)文件类型 /2)子类型
eg:text/css text/html text/javascript
告诉接收方如何解析响应的数据
以前旧数据价值随着使用次数增加而减少,而现在的数据价值不会随着使用次数增加而减少,发呢可以长期保存,持续创造价值
- 无法在一定时间内
- 用常规工具进行管理和处理
- 数据集合
- 新处理模式才能更强决策力
- 海量、高增长速度、多样化
- 信息资产
- 数据采集和预处理
- 数据存储与管理
- 数据分析和处理
- 数据可视化
- 来源广泛 数据量巨大
- 数据类型丰富 半结构化/结构化
- 分布式数据库/分布式文件系统
- 将大量原始的脏数据洗掉,是纠正数据可识别的错误最后一道工序
- 包括检查数据一致性,缺失值和无效值
- 对数据进行etl操作,对数据提取,转换,加载
- 最终挖掘数据潜在价值 为用户提供解决方案
- 传感器
- 互联网数据
- 企业业务系统数据
- 日志数据
flume
- 流式架构,实时读取本地磁盘数据
- 海量日志采集,聚合,传输系统日志数据
kafka
- 分布式消息事件流平台
- 什么是订阅发布?不会将消息分发给特定订阅者 而是将发布的消息分类 订阅者只接收感兴趣的消息
数据源中不完整,异常,重复等有问题的数据称为脏数据
1 一致性检查
控制在合理范围内,命名是否规范,是否超出正常范围
2 不完整数据
信息被遗漏,无法收集,收集成本太大
3 错误数据
输入错误或错误数据
4 重复数据
1 预处理
-
提取一部分数据
-
查看元数据
2 格式内容处理
3 缺失值删除
- 整例删除
- 变量删除
- 成对删除
4 逻辑错误清洗
- 去重处理 机器
- 矛盾内容处理
- 不合理的值 20岁和200岁
- 不可靠的字段值 20岁 身份证时40
- 不可靠的来源
- 离群值(异常值处理)
预知后事如何,请加qq2958242159,代码练习以及考试原题都有所保留!
1 超文本
使用超链接方式,将文字和图片信息联结,形成具有相关信息的体系
2 标记语言
文档里使用标记标签定义页面内容的语言,no编程语言!!
1 尖括号
尖括号里面一般扩关键词,可以忽略大小写
2 元素
就是夹在开始标签和闭合标签尖括号的内容
eg:<div>赚钱使我快乐!</div>--赚钱使我快乐!属于元素
3 html文档结构
1 根标签<html></html>
一般中间有lang=’en‘
2 头部标签<head></head>
常见属性
- <title></title>
- <meta charset='utf-8'>
- <link>
3 主体标签<body></body>
3 超链接属性
1 **属性和属性之间靠空格分隔开
2 代码
4 href 属性
指定跳转的链接的url
5 target属性
- _blank 新的窗口打开链接
- _self 当前窗口打开链接
1 img没有结束标签
2 src是url路径
2 alt是当前图片无法显示时替代的文本
结果图:
如果该路径没有这个图片:
3 a标签和img标签的区别
- 路径引用:img使用src,a使用href
- a是开始&闭合标签,img是只有开始标签
- : unordered list(无序列表)
- : ordered list(有序列表)
1 如何产生带有数字列表符号的列表?
- <ul>
- <dl>
- <ol>
- <list>
2 如何产生带有圆点列表符号的列表?
- <dl>
- <list>
- <ol>
- <ul>
答案:CD
- div标签通常用于设置:id/class属性
1 含义
给html页面设计样式和布局
2 在CSS层叠样式表当中经常用到的三种选择器
___属性选择器___、__类选择器__、__id选择器__
3 属性选择器
- 属性和属性以;间隔
- sytle为格式
4 类选择器class
- class里面的用户名自己定义
- 在<style></style>标签内自定义
5 id选择器
- 相对其他不同的就是由style属性变成class属性变成id属性
1 在HTML中,引入CSS的方法主要有
___内部样式____、___内联式___、___外部样式__4种
2 内联式--行内联系 主要属性style
3 内部样式表 class和style混合使用
4 外部样式表
分为两个部分预处理创建一个a.css在当前html路径下
1 html文件怎么写?
2 a.css文件怎么写?
3 rel
rel时当前文档与外部资源的关系,rel全称是relationship
4 href
外部资源的路径
复习一下bytes在学urllib.parse的url与字典转换时使用过
具体为:
- 建立连接 客户端通过TCP协议与服务端TCP连接
- 发送请求---客户端向服务端某一个端口发送http协议请求资源(实际上就是浏览器输入url,请求dns服务器,获取请求站点ip地址,然后再发送request请求给拥有该ip的主机)
- 响应 --服务器响应客户端数据,数据以html文档格式返回浏览器,浏览器自动css渲染
- 关闭连接
指定allow可以抓取和disallow不可以抓取的信息
- get:获取查询页面信息
- post:提交表单上上传文件
- 2:200 成功发送请求并响应
- 4:404 用户输入错误url
4 报文
- 请求报文 以键值对形式输出
- 包括url,请求状态,请求ip地址
- 响应报文 主要包含content-type/user-agent
1 Content-Type
表明MIME类型--多用途互联网邮件扩展 --eg:image/gif
2 cookie
- 存储客户端的重要信息
3 User-Agent
- 客户端的身份标识字符串
- 包括cpu类型、操作系统和版本、浏览器版本、插件等
- 作用:模拟浏览器发送请求,避免反爬机制
TLS/SSL 是通信安全标准
1 含义
统一资源定位符
2 长啥样?
https://用户名:密码@子域名.域名.顶级域名/端口/?参数1=value1&参数2=value2
3 绝对url和相对url
- url当前所在位置与被引用的文件位置无关--绝对
- 根据既定规则,自动抓取互联网信息的程序
- 数据有价值
- 爬虫会影响正常使用
- 发送请求
- 获取响应数据
- 解析响应数据
- 保存数据
- urllib.request.urlopen
- requests
- urllib3.PoolManager().request()
注意:urllib.request.urlopen去read以后的是bytes对象,需要解码decode('utf-8')
获取响应头 :res.getheaders()
获取网址 :res.geturl()
urlencode后面跟字典使用,****parse在urllib下不是在urllib.request底下
1 发送get请求
2 发送post请求 urlencode作用是将字典转换为url编码方式
那么,post加入data呢?**bytes方法后加上utf-8的字符编码
3 urllib的设置请求头必须创建urllib.request.Request对象
然后再对象调用urllib.request.urlopen方法
注意!request方法在urllib3时有方法名,但是urllib时不传入请求方法名
1 get方法
2 post方法
3 retries参数
4 urllib和urllib3的区别
- 在urllib.request里面是没有post和get的,urllib3.request有
- urllib.request.urlopen才是发送请求方法,urllib3.request直接就是发送请求方法了
- res.read().decode('utf-8')//res.data.decode('utf-8')
- data和parmas VS field
区别:之前用的是urllib.parse.urlencode(字典)现在直接get用parmas,post用data
区别:headers直接导入即可,而urllib还要创建urllib.request.Request对象
response.content一般在图片的读取中使用
response.text则是读取文本
小技巧:右键-检查-网络-刷新-随便选一幅图--就可以看到响应里面的content-type
根据看见的MIME格式就可以决定输入response.content or response.text
需要注意
1 compile设置模板时注意使用.*? 非贪婪匹配京肯匹配较少字段 否则会出现输出行只显示一行
2 "{}.jpg".format(name)
因此,str.format中str是有带双引号的,括号里面才是要导入的!
3 真正的图片是加上base_url,因此要重新requests.get
- dir也有输出所有参数的作用
- wb中b只能配合读写使用,且有了b就不能有encoding='编码'了
- mkdir命令是创建文件夹
有特殊意义的字符,在前面加上变成普通字符
B代表一个单词开始和结束
w代表下划线、字母、数字
s任意空白符
1 什么是转换?
转换包括输入步骤、输出步骤和中间的转换步骤,这些步骤通过数据流连接起来,实现对数据的处理、清洗、转换和加载
2 转换的构成
一个转换包括多个步骤以及连接步骤的跳组成
作业是一系列步骤的有序流程,可以包含多个转换和其他类型的操作,整个工作流的控制
作业是步骤流,转换是数据流
一系列步骤的流程,包括多个转换操作;
转换包括输入,输出以及连接,通过一系列数据流连接实现;
- 可视化的编程语言
- 免费开源
- 生成文件扩展名是ktr,ktr是转换,kjb是作业
步骤与步骤间带着箭头的数据通路
- 步骤名字唯一
- 步骤的跳/数据传输分为分发和复制
- 优点:高并发低消耗
- 缺点:所有步骤并发操作,无法定义执行顺序
1 json
- .是子节点的意思
- ..是匹配任意符合条件的 不能多次使用
- $是根节点
如果已有字段想要导入字段 选自字段导入 源即可
之后的根目录就是导入的字段源而不是初始根目录
2 xml
- 属性用@
- 父节点是..
- 值映射
- 计算器
- 排序处理
- 过滤记录(及格/不及格)
A 200 B 501 C 503 D404
A a B w C a+ D wb
#a是追加写 w是只写 a既写又写 wb是写入二进制数据
- <h6>
- <head>
- <heading>
- <h1>
- <br>
- <lb>
- <break>
- <a url="http://www.w3school.com.cn">W3School.com.cn</a>
- <a href="http://www.w3school.com.cn">W3School</a>
- <a>http://www.w3school.com.cn</a>
- <a name="http://www.w3school.com.cn">W3School.com.cn</a>
3 在下列的 HTML 中,哪个可以插入图像?
- <img href="image.gif">
- <image src="image.gif">
- <img src="image.gif">
- <img>image.gif</img>
3 在HTML中,使用<IMG>标签插入图像,下列选项关于<IMG>的src属性说法正确的是( )。(选择一项)
A. 用来设置图片文件的格式
B. 用来设置图片文件所在的位置
C. 用来设置鼠标指向图片时显示的文字
D. 用来设置图片周围显示的文字
结果:
注意:文件名一定是.png不然会乱码 并且用content读取
匹配网址的123 .*?匹配尽可能少的
截屏:123 下图为什么只输出3呢?