day05

1. 文本处理

什么是文件:文件是操作系统提供的一个虚拟概念,拿来存储信息的
什么是文本:.txt/.word/.md/.py/.xml/.ini 存储的是文字

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

操作思路

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

# 1. 找到文件路径 ’D:\上海python12期视频\python12期预科班视频\day 05\新时代中国特色社会主义.txt‘
# 2. (通过记事本)打开文件
# 3. 读取/修改操作
# 4. 保存
# 5. 关闭文件

# file_path = r'D:\上海python12期视频\python12期预科班视频\day 05\新时代中国特色社会主义.txt'
# f = open(file_path)  # 把该路径的文件读入内存,只是没有可视化的界面而已
# print(f)
# data = f.read()  # 读取文件
# print(data)
# f.close()
# 打开文件的三种模式 
r--》read(只读不可写)
w-->write(只写不可读,清空文本文件)
a--》append(只写不可读,追加)

flie_path = r'D:\11日常课程11\test\关于实施乡村振兴战略的意见.txt'

# w: 清空后写入
# a:直接追加在文本末尾
f = open(flie_path,'a',encoding='utf8')  # encoding告诉计算机用什么编码格式翻译硬盘中的0和1
print('f.readable():',f.readable())
print('f.writable():',f.writable())
f.write('我们是一个伟大的国家')

# data = f.read()
# print(data)

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

utf8
0001-->a
0010--> b
0011--> c
美国的编码能给中国人用吗?中国也弄了一套编码规则,中国的叫gbk
0001--> 中

==乱码情况下,先去掉乱码,修改标准语言在添加==

2. 高级文本处理

1.特殊字符注释

python里面存在特殊字符,怎样去除?

1. 路径前面加r

2. 在无效参数前加\去注释掉

路径出现紫色(无效参数)打不开?==路径前加r==


2.t和b模式

b模式

==gbk/utf8==只针对==文本==

所以==音频==通过==rb模式==打开-->读取二进制,b模式下没有encoding这个参数,b不单独使用,一般与r

# t和b模式
# gbk/utf8只针对文本,所以音频通过rb模式打开-->读取二进制,b模式下没有encoding这个参数,b不单独使用,一般与r/w/a一起配合使用

 f = open(r'D:\上海python12期视频\python12期预科班视频\day 05\01 文本处理.mp4','rb')  # 读入内存
 data = f.read()

t模式

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

==rt模式,默认r==

f = open(r'D:\上海python12期视频\python12期预科班视频\day 05\关于实施乡村振兴战略的意见.txt','rt',encoding='utf8')
data = f.read()
print(data)

3.高级应用(可读可写)

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

  1. r+:又可读又可写
  2. a+:又可读又可写
  3. w+:又可读又可写(清空)

打开一个文件,内容是 abc

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

读出 5s --> 没有写入 --> abc

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

再过 5s --> 第一次写入成功了 --> abcd

又过了5s --> 第二次写入给计算机的指令是 abc后面加个d -> 报错

==r+可写可读,a+可写可读,w+可写可读(清空文件)==

4.自动关闭文件

手动关闭

f = open(r'D:\上海python12期视频\python12期预科班视频\day 05\关于实施乡村振兴战略的意见.txt','r+',encoding='utf8')  #r -->可读  r+ -->又可读又可写
print(f.readable())
print(f.writable())
f.close()  # 解除他对操作系统的占用

with 会自动关闭文件

with open(r'D:\上海python12期视频\python12期预科班视频\day 05\关于实施乡村振兴战略的意见.txt','r+',encoding='utf8') as fr:    # 这个缩进内部的代码都是文件打开的状态    
    data = fr.read()    
    print(data)
    
print(1) #代码运行到缩进外面时,文件自动关闭

3. 文本处理+词云分析

1. 读取文件内容

import jieba
import imageio
import wordcloud
with open(r'D:\上海python12期视频\python12期预科班视频\day 05\huijiadeyouhuo.txt','r+',encoding='utf8') as fr:        
    data = fr.read()

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

    data_list = jieba.lcut(data)
    data = ' '.join(data_list)

3. 找到一张洪世贤的图片

    img = imageio.imread(r'D:\上海python12期视频\python12期预科班视频\day 05\hongshixian.jpg')

4. 使用词云模块生成词云

w=wordcloud.WordCloud(background_color='white',mask=img,font_path=r'C:\Windows\Fonts\simsun.ttc',max_words=150)
    w.generate(data)
    w.to_file('nihaosaoa.png')

4. 爬虫课程:

requests库 /selenium库

  1. 什么是爬虫
  2. 什么是数据
  3. 爬虫的比喻
  4. 爬虫的原理
    1. 请求数据 ---> 安装第三方指令 pip3 install requests

    2. 获取数据 ---> 无需自己做

    3. 解析获取有价值的数据 ---> re正则模块(内置)

    4. 保存数据 ---> 文件处理

5. 爬虫原理

通过浏览器发送请求拿到内容;通过requests模拟浏览器发送请求拿到内容

6. 爬虫的流程

  1. 发送请求(填入一个url)
  2. 获取内容
  3. 筛选你所需要的数据
  4. 保存的数据到文件

7. requests模块的使用

import requests

res = requests.get(url)
# 文本
res.text
# 二进制流
res.content

8. re模块

re.S 全局搜索
 .*?贪婪匹配,匹配所有

data = '<img id="blogLogo" src="https://www.baidu.com" alt="返回主页">'
re.findall('src="(.*?)"',data)  从内容中筛选所需要的内容

.*? 你需要什么就把什么东西(.*?)  # 80-90场景下就用.*?

豆瓣案例

#豆瓣解析文本思路

# 一部电影的 html标签与数据
# .*?贪婪匹配,匹配所有
# 获取电影名称,电影详情页链接,电影评分,电影评价人数正则规则
# <div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>
import requests
import  re


response = requests.get(
    url='https://movie.douban.com/top250'
)

# 获取响应文本
# print(response.text)

'''
1.电影名称
2.电影详情页链接
3.电影评分
4.电影评价人数
'''
# 2.解析并提取数据
# 查找所有
# re.S: 全局查找
# re.findall('正则匹配规则', '解析文本', re.S)
# 获取所有电影的名称
# movie_name = re.findall('<div class="item">.*?<span class="title">(.*?)</span>', response.text, re.S)

# 获取电影的名称与详情页地址
# movie_name = re.findall('<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>', response.text, re.S)    #正则不能换行

movie_list = re.findall('<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>', response.text, re.S)

# 循环
with open('douban.txt', 'a', encoding='utf-8') as f:
    for line in movie_list:
        movie_url = line[0]
        movie_name = line[1]
        movie_point = line[2]
        movie_count = line[3]
        f.write(movie_url + '---' + movie_name + '---' + movie_point + '---' + movie_count + '\n')

    print('写入数据成功,爬虫程序结束...')

转载于:https://www.cnblogs.com/jzm1201/p/11439459.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值