day05 学习小结

目录

文本处理

什么是文件:文件是操作系统提供的概念,用来储存信息

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

还有多媒体文件:视频/音频文件

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

  1. 找到文件路径
  2. 打开文件(通过记事本)
  3. 读取/修改操作
  4. 保存
  5. 关闭文件

如何通过pycharm打开文件

file_path = 'E:\old_boy\day 05\关于实施乡村振兴战略的意见.txt'
f = open(file_path,'r',encoding='utf8')  # 把该路径的文件读入内存,只是没有可视化的界面而已
print(f)
data = f.read()  # 读取文件
print(data)
f.close()

打开文件的三种模式

  1. r(read):只读不可写
  2. w(write):只写不可读,且会清空文本文件
  3. a(append):只写不可读,追加(直接追加在文本末尾)

文本高级知识

打开文本文件时后面加t(text)【默认】:rt/wt/at(不加就是默认为加t)

打开多媒体文件(二进制数据)时,后面要加b(bytes):rb/wb/ab

文件路径之前加 r 可以使转义字符失效;

字符后加‘\n’可以换行;

爬虫课程

  1. 什么是爬虫?

    爬虫指的是爬取数据.

  2. 什么是数据?

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

    淘宝的商品信息等...

    爬取某某网站的小视频...

  3. 爬虫的比喻

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

  4. 爬虫的原理

    • 发送请求 ---> requests, selenium
    • 获取数据 ---> 无需自己做
    • 解析获取有价值的数据 ---> re正则模块(内置)
    • 保存数据 ---> 文件处理

爬取图片、视频(多媒体文件)

'''
requests请求库
pip3 install requests
'''

import requests
'''
爬取校花网图片
'''
# 1.发送请求
# GET发送请求
response = requests.get(
    url='http://www.xiaohuar.com/d/file/20190823/a110ceb73ca709dfa405064489350ba8.jpg'
)

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

# 保存数据
with open('xiaohua1.jpg', 'wb') as f:
    f.write(response.content)
    print('图片下载成功!')



'''
爬取梨视频
'''
# 1.往视频地址发送请求,获取二进制流数据
response2 = requests.get(
    url='https://video.pearvideo.com/mp4/adshort/20190827/cont-1594186-14312834_adpkg-ad_hd.mp4'
)

# print(response2.content)

# 2.把二进制流数据保存到本地
# wb: write + bytes  写二进制流模式
# 凡是二进制流数据,不需要指定字符编码
with open('视频1.mp4', 'wb') as f:
    f.write(response2.content)
    print('视频下载成功!')

爬取文本

import requests
import re

# 1.发送请求
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)

# 循环
num = 1
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('写入数据成功,爬虫程序结束...')

上一篇:爬虫部署-2,基于Docker的Scrapy+Scrapyd+Scrapydweb部署


下一篇:python-优酷系统管理员视图粗糙版(无详细注释)