目录
文本处理
什么是文件:文件是操作系统提供的概念,用来储存信息
什么是文本:.txt/.word/.md/.py/.xml/.ini 用来存储文字
还有多媒体文件:视频/音频文件
如何通过文本编辑器去控制txt文件
- 找到文件路径
- 打开文件(通过记事本)
- 读取/修改操作
- 保存
- 关闭文件
如何通过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()
打开文件的三种模式
- r(read):只读不可写
- w(write):只写不可读,且会清空文本文件
- a(append):只写不可读,追加(直接追加在文本末尾)
文本高级知识
打开文本文件时后面加t(text)【默认】:rt/wt/at(不加就是默认为加t)
打开多媒体文件(二进制数据)时,后面要加b(bytes):rb/wb/ab
文件路径之前加 r 可以使转义字符失效;
字符后加‘\n’可以换行;
爬虫课程
-
什么是爬虫?
爬虫指的是爬取数据.
-
什么是数据?
互联网中能看到的都是数据.
淘宝的商品信息等...
爬取某某网站的小视频...
-
爬虫的比喻
把数据比喻成一座宝藏, 爬虫其实就是在挖取宝藏.
-
爬虫的原理
- 发送请求 ---> requests, selenium
- 获取数据 ---> 无需自己做
- 解析获取有价值的数据 ---> re正则模块(内置)
- 保存数据 ---> 文件处理
- 发送请求 ---> requests, selenium
爬取图片、视频(多媒体文件)
'''
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('写入数据成功,爬虫程序结束...')