• with和爬虫基础


    文件操作

    • 什么是文件

      文件是操作系统提供的一个虚拟存储单位

    • 为什么要有文件

      内存无法永久保存数据,就需要把文件保存到硬盘中,而操作文件可以实现对硬盘的操作

    • 什么是文本

      只用来存储文字信息,如:.txt、.doc、.docx、.wps

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

      1.找到文件路径 file_path

      2.打开文件open

      3.读取/修改操作read/write

      4.保存flush

      5.关闭文件close

    • 打开文件的三种模式

      r(read):只读不可写

      w(write):清空后写入

      a(append):只读不可写:直接追加在文本末尾

      with管理上下文

      f = open()
      f.read()
      
      # 自动关闭文件
      with open() as f:
      f.read()
      
      with open(r'D:上海关于实施乡村振兴战略的意见.txt','r+',encoding='utf8') as fr:
          # 这个缩进内部的代码都是文件打开的状态
          data = fr.read()
          print(data)
      
    • 打开文件的两种方式

      b:二进制

      t:文本

      # b模式
      # gbk/utf8只针对文本,所以音频通过rb模式打开-->读取二进制,b模式下没有encoding这个参数,b不单独使用,一般与r/w/a一起配合使用
      # f = open(r'D:上海python12期视频python12期预科班视频day 051 文本处理.mp4','rb')  # 读入内存
      #
      # data = f.read()
      
      
      # t模式针对文本文件,t模式不单独使用,必读得和r/w/a一起使用
      # f = open(r'D:上海python12期视频python12期预科班视频day 05关于实施乡村振兴战略的意见.txt','rt',encoding='utf8')
      # data = f.read()
      # print(data)
      

    不建议使用

    ​ r+ 又可读又可写

    ​ a+ 又可读又可写

    ​ w+ 又可读又可写(清空)

    # 高级应用
    
    # 可读可写-->不建议使用
    
    # 打开一个文件,内容是   abc
    
    # 写入 10s  -> abc后面加个d
    
    # 读出 5s --> 没有写入  --> abc
    
    # 写入 10s --> abc后面加个d
    
    # 再过 5s --> 第一次写入成功了 --> abcd
    
    # 又过了5s --> 第二次写入给计算机的指令是 abc后面加个d  -> 报错
    
    • 基础文本处理

      file_path = 'D:pycharm_projectconfig.txt'
      f = open(file_path, 'a',encoding='utf8')
      data = f.write('234')
      print(data)
      
    • 文本处理高级应用

      print(r'
      ')  # 
      本来是换行,加上r,变成了
      
      
      gbk/utf8只针对文本,所以音频通过rb模式读取二进制
      b模式下没有encoding模式,b一般与r / a / w 一起使用
      
      file_path = 'D:pycharm_projectmovie.mp4'
      f = open(file_path, 'rb')
      
    • 文本处理+词云

      import jieba
      import imageio
      import wordcloud
      
      # 1. 读取文件内容
      with open(r'D:上海python12期视频python12期预科班视频day 05huijiadeyouhuo.txt','r+',encoding='utf8') as fr:
          # for i in range(1000):
          #     fr.write('回家的诱惑,')
          #     fr.flush()  # 相当于保存
      
          data = fr.read()
      
      
      # 2. 使用结巴模块对文件内容切割
      jieba.add_word('回家的诱惑')  # 让"回家的诱惑"成为一个单词
      jieba.del_word('女士')
      jieba.del_word('先生')
      jieba.del_word('小马')
      data_list = jieba.lcut(data)
      data = ' '.join(data_list)
      
      # 3. 找到一张洪世贤的图片
      img = imageio.imread(r'D:上海python12期视频python12期预科班视频day 05hongshixian.jpg')
      
      # 4. 使用词云模块生成词云
      w = wordcloud.WordCloud(background_color='white',mask=img,font_path=r'C:WindowsFontssimsun.ttc',max_words=150)
      w.generate(data)
      w.to_file('nihaosaoa.png')
      

    爬虫课程

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

    爬虫原理

    1. 发送请求

    2. 获取内容

    3. 筛选你所需要的内容

    4. 保存数据

      requests模块的使用

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

    re模块

    re.s 全局搜索
    
    data = '<img id="blogLogo" src="https://www.baidu.com" alt="返回主页">'
    re.findall('src="(.*?)"',data)  从内容中筛选所需要的内容
    
    .*? 你需要什么就把什么东西(.*?)  # 以后工作80%-90%场景下都能用上.*?
    

    爬取图片

    
    import requests
    
    response2 = requests.get(
        url='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1566904515016&di=eda120ed19a6c3734cd82d75d8f51535&imgtype=0&src=http%3A%2F%2Fimg1.mydrivers.com%2Fimg%2F20160128%2F5f400f189753457dbb8f5f09ff25e50b.jpg'
    
    )
    with open('图片1.jpg', 'wb') as f:   # wb写入二进制数据流
        f.write(response2.content)
        print('下载成功!')
    

    爬取视频

    import requests
    
    response = requests.get(
        url='https://video.pearvideo.com/mp4/adshort/20190827/cont-1595412-14312901_adpkg-ad_hd.mp4'
    )
    
    with open('视频1.mp4','wb') as f:
        f.write(response.content)
        print('下载成功!')
    

    爬取豆瓣电影信息

    '''
    爬取豆瓣电影新片榜详情
    '''
    
    import requests
    import re
    response = requests.get(
        url='https://movie.douban.com/top250'
    )
    
    # 获取响应文本
    # print(response.text)
    
    '''
    1.电影名称
    2.电影详情页链接
    3.电影评分
    4.电影评价人数
    '''
    
    # re.findall('正则匹配规则', '解析文本', 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)
    
    num = 1
    for line in movie_list:
        movie_url = line[0]
        movie_name = line[1]
        movie_point = line[2]
        movie_count = line[3]
        print(f'{num}.{movie_url},电影名字:{movie_name},评分:{movie_point},评价人数:{movie_count}')
        num += 1
    
    
        
    # 打印结果:
    1.https://movie.douban.com/subject/1292052/,电影名字:肖申克的救赎,评分:9.7,评价人数:1569877
    2.https://movie.douban.com/subject/1291546/,电影名字:霸王别姬,评分:9.6,评价人数:1159637
    3.https://movie.douban.com/subject/1292720/,电影名字:阿甘正传,评分:9.5,评价人数:1221601
    4.https://movie.douban.com/subject/1295644/,电影名字:这个杀手不太冷,评分:9.4,评价人数:1413306
    5.https://movie.douban.com/subject/1292063/,电影名字:美丽人生,评分:9.5,评价人数:715179
    6.https://movie.douban.com/subject/1292722/,电影名字:泰坦尼克号,评分:9.4,评价人数:1163959
    7.https://movie.douban.com/subject/1291561/,电影名字:千与千寻,评分:9.3,评价人数:1254774
    8.https://movie.douban.com/subject/1295124/,电影名字:辛德勒的名单,评分:9.5,评价人数:633659
    9.https://movie.douban.com/subject/3541415/,电影名字:盗梦空间,评分:9.3,评价人数:1207515
    10.https://movie.douban.com/subject/3011091/,电影名字:忠犬八公的故事,评分:9.3,评价人数:809641
    11.https://movie.douban.com/subject/2131459/,电影名字:机器人总动员,评分:9.3,评价人数:801051
    12.https://movie.douban.com/subject/3793023/,电影名字:三傻大闹宝莱坞,评分:9.2,评价人数:1093201
    13.https://movie.douban.com/subject/1291549/,电影名字:放牛班的春天,评分:9.3,评价人数:761018
    14.https://movie.douban.com/subject/1292001/,电影名字:海上钢琴师,评分:9.2,评价人数:884940
    15.https://movie.douban.com/subject/1292064/,电影名字:楚门的世界,评分:9.2,评价人数:847507
    16.https://movie.douban.com/subject/1889243/,电影名字:星际穿越,评分:9.3,评价人数:869189
    17.https://movie.douban.com/subject/1292213/,电影名字:大话西游之大圣娶亲,评分:9.2,评价人数:850347
    18.https://movie.douban.com/subject/1291560/,电影名字:龙猫,评分:9.2,评价人数:749971
    19.https://movie.douban.com/subject/5912992/,电影名字:熔炉,评分:9.3,评价人数:503261
    20.https://movie.douban.com/subject/1291841/,电影名字:教父,评分:9.3,评价人数:544360
    21.https://movie.douban.com/subject/1307914/,电影名字:无间道,评分:9.2,评价人数:698197
    22.https://movie.douban.com/subject/25662329/,电影名字:疯狂动物城,评分:9.2,评价人数:981830
    23.https://movie.douban.com/subject/1849031/,电影名字:当幸福来敲门,评分:9.1,评价人数:885025
    24.https://movie.douban.com/subject/3319755/,电影名字:怦然心动,评分:9.0,评价人数:989998
    25.https://movie.douban.com/subject/6786002/,电影名字:触不可及,评分:9.2,评价人数:577088
    

    换源引用博客:https://www.cnblogs.com/shouhu/p/12144414.html

  • 相关阅读:
    Apple Developer Program Roles Overview
    iOS 使用UIView的一种有效方法
    百度面试(转)
    iOS 冒泡排序
    iOS 面试题及答案
    iOS 开发进程与线程
    iOS 应用内跳转到appstore里下载
    iOS 使用封装的NSLog来打印调试信息
    iOS 并发编程指南
    苹果App Store审核指南中文翻译(2014.9.1更新)
  • 原文地址:https://www.cnblogs.com/gfhh/p/11426038.html
Copyright © 2020-2023  润新知