zoukankan      html  css  js  c++  java
  • 文本, 爬虫

    文本处理

    文件与文本

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

    什么是文本: .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---(换行展示)

  • 相关阅读:
    洛谷 P1068 分数线划定
    LeetCode 7. Reverse Integer
    LeetCode 504. Base 7
    洛谷 P1598 垂直柱状图
    用户场景
    个人博客03
    个人博客02
    个人博客01
    《构建之法》阅读笔记03
    学习进度条(第四周)
  • 原文地址:https://www.cnblogs.com/-406454833/p/11436132.html
Copyright © 2011-2022 走看看