文本, 爬虫 文本处理 文本高级 文件处理+词云分析 爬虫介绍 爬取文本信息 ---一部电影的html标签与数据

文件与文本

什么是文件:文件是操作系统提供的一个虚拟概念,拿来存储信息的

什么是文本: .txt/.word/.md/.py /.xml /.ini 存储的是文字

视频/音频文件(多媒体文件)

我们如何通过文本编辑器去控制txt文件

1.找到文件路径

pycharm中迅速找的方法:鼠标右键点击文本-->copy path

2.(通过记事本)打开文件

file_path = r'C:Users龘Desktoppython12期day05新时代中国特色*.txt'
f = open(file_path) #把该路径的文件读入内存,只是没有可视化的界面而已,本质上是一样
print(f)
data = f.read() #读取文件
print(data)
f.close()





打开文件的三种模式r-->read(只读不可写)/w-->write(只写不可读,清空文本文件)/a-->apend(只写不可读,追加)

file_path = r'C:Users龘Desktoppython12期day05新时代中国特色*.txt'
f = open(file_path,'r')
print('f.readable():',f.readable())#逗号隔开打印多个东西
print('f.writable():',f.writeable())
f.write('sdf')
data=f.read()
print(data)

write模式清空文件后如何恢复

右键点击文本-->local history -->show history

w:清空后写入(慎用)

a:直接追加在文本末尾(不清空)

encoding

大致理解:美国的编码不能给中国用,中国也弄了一套编码规则,中国的叫gbk

编码解码规则的不同

3.读取或者修改操作

4.保存

5.关闭文件

文本高级

t模式和b模式打开音频视频文件

b模式

gbk/utf8只针对文本,所以音频通过rb模式打开-->读取二进制,b模式下没有encoding这个参数,已经读取二进制了就不再需要做编码了,b不单独使用一般与r/w/a一起配合使用,但是一般很少写入音频或视频的二进制数据(及很少用wb/ab),一般只读取二进制数据

ab作用:读取音频二进制数据做数据文件拷贝,数据爬虫使用

f=open(r'D:Program FilesfeiqRecv Filesday 05上午 2 文本高级.mp4','r',encoding='utf8')
# print(f)
print(f.read())
# print(1)
# print(r'\n')
# print(2)

t模式

使用r/w/a即默认使用rt/wt/at模式

t模式针对文本文件,必须得和r/w/a一起使用

转义字符转换成普通字符

方式一:字符外加r

方式二:字符内

可读可写-->不建议使用

打开一个文本文件,内容是abc

写入10s,-->abc后面加个d

后5s读出abc-->认为没写入

第二次写入10s-->abc后面加个d

再过5s-->第一次写入成功了,-->文本文件变成了abcd

又过5s-->第二次写入的结果读出(但是之前的给计算机的指令是abc后面加个d,-->报错

使用方式:

f = open(r'C:Users龘Desktoppython12期day05关于实施乡村振兴战略的意见.txt','r+')
print(f.readable())
print(f.writable())

r+:可写可读

a+:可写可读

w+:可写可读(会情况文件)

为什么文件打开后不用关闭?

电脑内存变化

4kb-->4mb-->4g

关闭方式

f.close() #解除打开的文件对操作系统的占用,如果开多个视频文件会增加对内存占用

with open自动关闭文件,

with会自动关闭文件

使用方式(语法):

with open(r'C:Users龘Desktoppython12期day05关于实施乡村振兴战略的意见.txt','r+',encoding='utf8') as f:
    #这个缩进内部的代码都是文件打开的状态
    data=f.read()
    print(data)

print(1) #当文件运行到缩进外时文件自动关闭

with open() as f:

​ #缩进内部的代码都是文件打开的状态

print(1) #当文件运行到缩进外是文件自动关闭

文件处理+词云分析

1.读取文件内容

让某个词多出现几次,使用for循环在文档中添加该词

2.使用jiba模块对文件内容切割

3.找到一张图片控制词云形状(使用词云模块中的mask参数)

4使用词云模块生成词云

字体乱码:在windows中找字体路径

添加指定词汇

形状不符合

爬虫介绍

requests库

selenium库

什么是爬虫

爬虫指的是爬取数据

什么是数据

互联网中能看到的都是数据

淘宝商品信息等...

爬取某某网站小视频

爬虫比喻

把数据比喻成一座宝藏,爬虫其实就是就是在挖取宝藏

爬虫的原理

发送请求

-->requests,selenium

url(资源定位)

import requests
'''
爬取校花网图片
'''
#1.发送请求
    #get发送请求
response = requests.get(url=r'http://www.xiaohuar.com//d/file/20190823/75149a1f9845c50e8158c64793be8759.jpg')
    #接收二进制流数据
print(response.content)
    #保存数据
with open(r'xiaohua1.jpg','wb') as f:
    f.write(response.content)
    print('图片下载成功!')

'''
爬取梨视频
'''
#往梨视频地址发送请求,获取二进制流数据

response2 = requests.get('https://video.pearvideo.com/mp4/adshort/20190829/cont-1596373-14322811_adpkg-ad_hd.mp4')
#把二进制流数据保存到本地
    #wb:write + bytes   写二进制流模式
        #凡是写入二进制流数据,不需要指定字符编码
with open('梨视频.mp4','wb') as f2:
    f2.write(response2.content)
    print('视频下载成功')

<Response [200]> #<>对象符号

print(response.txt) #获取文本,但是音频/视频/图片返回的数据都是二进制流数据bytes类型

print(response.content) #接收二进制流数据

wb等价于write+bytes

with open('xiaohua.jpg','wb') as f: #同时创建一个名为xiaohua.jpg的文件,不指定路径默认保存在当前文件夹

获取数据

-->无需自己做

返回web前端模板数据+所需数据

浏览器软件将返回的数据展示出来

解析获取有价值的数据

-->request

解析(通过前端页面代码中的标记获取标记内的数据)

re正则模块(内置)

保存数据

-->文件处理

爬取文本信息

re正则模块

内置:python解释器自带

第三方:别人写好的模块或者库把他下载到本地去使用

使用方式:import re

正则匹配规则

写好规则提取想要提取的数据

使用方法:

查找所有

通过浏览器审查元素定位

re.findall('正则匹配规则','解析文本',re.S)

re.S:全局查找

不加re.S一行一行找

加re.S一块一块找

---一部电影的html标签与数据

正则匹配原理:通过标签找到元素,然后找到元素中所需要的数据并提取

.*?指的是贪婪匹配,匹配所有,过滤掉两个标签直接的内容

(.*?)---提取两个标签之间的内容

贪婪匹配内容过多处理方式

一定不能手动换行,手动换行正则就变了

可以调整视图:view-->active editor-->use soft wraps---(换行展示)