【Python学习】Day-10 xls文件读写、初识爬虫


openpyxl和xlwt/xlrd对比

  • openpyxl行列号从1开始;xlwt、xlrd行列号从0开始
  • 两者都可以对工作表进行操作。
  • 两者都可以用单元格定位的形式进行单元格操作。
  • xlwt写操作使用过write()写

1. xls文件读写

1.1 xls写操作

xls文件写操作使用xlwt模块

import xlwt
import random as rd
# 创建文件
wb1 = xlwt.Workbook()
# 创建工作表(add_sheet)
sh1 = wb1.add_sheet('一年级一班成绩')
sh2 = wb1.add_sheet('一年级二班成绩')
sh3 = wb1.add_sheet('一年级三班成绩')

# 写入数据
names = ['刘备', '关羽', '张飞', '赵云', '马超', '黄忠']
for i in range(len(names)):
    sh1.write(i, 0,names[i])
    for j in range(1, 5):
        # sheet.write(row, col, content)
        sh1.write(i, j, rd.randint(0, 100))

# 保存关闭
wb1.save('../file/一年级成绩表.xls')

1.2 xls读操作

xls文件读操作使用xlrd模块

import xlrd

# 打开文件
wb2 = xlrd.open_workbook('../file/一年级成绩表.xls')
# 选择工作表:   sheet_names() --->查看所有工作表
# print(wb2.sheet_names())

# sheet_by_index()
# sheet_by_name()
ws = wb2.sheet_by_index(0)
print(ws.cell(0,0).value)
ws1 = wb2.sheet_by_name('一年级一班成绩')
print(ws1.cell(0, 0).value)

# 获取行列数
# nrows:获取最大行数
# ncols:获取最大列数
print(ws1.nrows, ws1.ncols)

2. 爬虫

爬虫又叫网络机器人,进行网络数据采集,按程序员的想法,由程序员自定义规则编写程序批量的爬取数据(图片、音频、视频、数据等)。

爬虫流程

  1. 解析HTML网页
  2. 根据前端的语法或正则表达式来提取数据
  3. 保存数据

2.1 解析网页

requests、urllib、selenium、playwariter等
requests:通过网址向服务器发送请求,等待服务器的响应结果。

2.1.1 状态码

status_code:状态码判断服务器和网页状态

  • 200:表示程序和服务器正常通信
  • 403:表示服务器理解客服端的请求,但是拒绝了客服的请求。
  • 404:网页丢失
  • 500:服务器崩溃
2.1.2 网页乱码

如果网页发生乱码,只需要根据页面指定编码方式解码即可
requests默认使用ISO-8859-1的编码(ASCII)
其也能使用页面服务器所指定的编码方式
UTF-8(万国码),gbk(国标码)
如果页面中没有charset=‘’:rsp.encoding = None

  • text:网页源代码(字符串类型)
  • content:网页源代码(二进制形式(字节))

二进制:b’…’ —>图片、视频、音频

案例1

import requests
url = 'https://game.gtimg.cn/images/yxzj/coming/v2/skins//image/20220623/16559919637365.jpg'
# 向网站发送请求,获取网站服务器的响应结果
rsp = requests.get(url=url)
# 图片下载
if rsp.status_code == 200:
    # print(rsp.content)
    img = open('../file/花木兰-九霄神辉.jpg', 'wb')
    img.write(rsp.content)
    img.close()
    print('下载完成')
else:
    print(f'状态码:{rsp.status_code}')

案例2

import requests
url = 'https://video.pearvideo.com/mp4/adshort/20220614/cont-1765337-15895934_adpkg-ad_hd.mp4'
# 向网站发送请求,获取网站服务器的响应结果
rsp = requests.get(url=url)
# 视频下载
if rsp.status_code == 200:
    # print(rsp.content)
    mp4 = open('../file/video.mp4', 'wb')
    mp4.write(rsp.content)
    mp4.close()
    print('下载完成')
else:
    print(f'状态码:{rsp.status_code}')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值