xls文件读写模块
--------xlwt、xlrd
- xlwt:xls文件写操作
- xlrd:xls文件读操作
openpyxl和xlwt\xlrd对比
- 1.openpyxl行列号从1开始;xlwt、xlrd行列号从0开始
- 2.两者都可以对工作表进行操作
- 3.两者都可以用单位格定位的形式进行单元格操作
- 4.xlwt写操作使用过write()写
xls文件写操作
import xlwt
import random
# 创建文件
wb = xlwt.Workbook()
- add_sheet:创建工作表 + 调用
# 写入数据
names = ['张飞', '刘备', '关羽', '貂蝉', '曹操']
for i in range(len(names)):
# 写入学生名字
sheet1.write(i, 0, names[i])
for j in range(1, 4):
# 工作表.write(row, index, content)
sheet1.write(i, j, random.randint(0, 100))
# 保存关闭
wb.save('一年级成绩表.xls')
xls读操作
import xlrd
wb = xlrd.open_workbook('一年级成绩表.xls')
sheet_names() --> 查看存在的所有工作表
- sheet_by_index()
- sheet_by_name()
ws = wb.sheet_by_index(0)
print(ws.cell(0, 0).value)
ws1 = wb.sheet_by_name('一年级一班成绩')
print(ws1.cell(0, 0).value)
print(ws1.nrows, ws1.ncols)
获取行列数
- nrows:获取最大行数
- ncols:获取最大列数
爬虫
----爬虫(网络数据采集)
按照程序员的想法,由程序员自定义规则编写程序批量地爬取数据(图片、音频、视频、数据等)
爬虫的流程
1.解析HTML页面
2.根据前端的语法或者正则表达式来提取数据
3.保存数据
requests、urllib、slenium、playwariter
requests的使用
requests:通过网址向服务器发送请求,等待服务器的响应结果
import requests
URL = 'https://pvp.qq.com/web201706/index.shtml'
# 向B站发送请求,获取B站服务器的响应结果
response = requests.get(url=URL)
print(response)
status_code:状态码
—> 判断服务器和网页的状态
- 200:表示程序和服务器正常通信
- 403:表示服务器理解客户端的请求,但是拒绝了客户端的请求
- 404:网页丢失
- 500:服务器崩溃
print(response.status_code)
注:
如果网页发生乱码,只需要根据网页指定编码方式解码即可
requests默认使用IOS-8859-1的编码(ASCII)
也能够使用页面服务器所指定的编码方式
UTF-8(万国码)、gbk(国标码)
如果页面中没有charset = ‘’ ----> response.encoding = None
response.encoding = 'gbk'
- text:查看页面源代码(字符串类型)
print(response.text, type(response.text))
- content:常看页面源代码(二进制形式(字节))
print(response.content)
练习: requests的图片、视频下载
import requests
# URL = 'https://game.gtimg.cn/images/yxzj/coming/v2/skins//image/20220623/16559919637365.jpg'
URL = 'https://video.pearvideo.com/mp4/adshort/20220614/cont-1765337-15895934_adpkg-ad_hd.mp4'
response = requests.get(url=URL)
if response.status_code == 200:
print(response.content)
# 将图片写入本地文件
# photo = open('1.jpg', 'wb')
# photo.write(response.content)
# photo.close()
video = open('1.mp4', 'wb')
video.write(response.content)
video.close()
else:
print(f'状态码:{response.status_code}')