第三方模块之request模块,openpyxl模块
第三方模块下载
# 1. pip工具 避免pip冲突 我们在使用的时候可以添加对应的版本号 下载第三方模块的句式 pip install 模块名 下载第三方模块临时切换仓库 pip install 模块名 -i 仓库地址 下载第三方模块指定版本(不指定默认是最新版) pip install 模块名==版本号 -i 仓库地址 # 2.pycharm自带工具 # 下载中可能出现的问题 # 1.报错并有警告信息 WARNING: You are using pip version 20.2.1; 原因在于pip版本过低 只需要拷贝后面的命令执行更新操作即可 # 2.报错并含有Timeout关键字 说明当前计算机网络不稳定 只需要换网或者重新执行几次即可 # 3.报错并没有关键字 百度搜索 # 4.下载速度慢 换源
requests模块
# requests模块能够模拟浏览器发送网络请求 import requests 作用: #1.朝网址发送请求获取页面数据(相当于浏览器输入地址访问) res = requests.get('http://www.redbull.com.cn/about/branch') print(res.content) # 获取到的是bytes(二进制)类型的网页数据 print(res.text) # 获取到的是字符串(默认是utf8)类型的网页数据 我们在获取数据时也可以使用res.encoding = 'utf8'来指定网页编码
requests模块实战练习
# import requests
import re
res = requests.get('https://sh.lianjia.com/ershoufang/pudong/') data = res.text home_title_list = re.findall('<a class="" href=".*?" target="_blank" data-log_index=".*?" data-el="ershoufang" data-housecode=".*?" data-is_focus="" data-sl="">(.*?)</a>',data) # print(home_title_list) home_name_list = re.findall('<a href=".*?" target="_blank" data-log_index=".*?" data-el="region">(.*?)</a>',data) # print(home_name_list) home_message_tab_list = re.findall('<a href=".*?" target="_blank" data-log_index=".*?" data-el="region">.*? </a> - <a href=".*?" target="_blank">(.*?)</a> </div>',data) # print(home_message_tab_list) home_message_list = re.findall('<div class="houseInfo"><span class="houseIcon"></span>(.*?)</div>',data) # print(home_message_list) home_num_list = re.findall('<div class="followInfo"><span class="starIcon"></span>(.*?)</div>',data) # print(home_num_list) home_price_list = re.findall('<div class="totalPrice totalPrice2"><i> </i><span class="">(.*?)</span><i>万</i></div>',data) # print(home_price_list) home_one_price_list = re.findall('<div class="unitPrice" data-hid=".*?" data-rid=".*?" data-price=".*?"><span>(.*?)</span></div>',data) # print(home_one_price_list) home_list = zip(home_title_list,home_name_list,home_message_tab_list,home_message_list,home_num_list,home_price_list,home_one_price_list) # print(home_list) with open(r'home_list.txt','w',encoding='utf8') as f: for data in home_list: print(""" 房屋标题:%s 小区名称:%s 街道名称:%s 详细信息:%s 关注程度:%s 房屋总价:%s 房屋单价:%s """%data) f.write(""" 房屋标题:%s 小区名称:%s 街道名称:%s 详细信息:%s 关注程度:%s 房屋总价:%s 房屋单价:%s\n """%data)
openpyxl模块
# 1.excel文件后缀名问题 03版本之前 : .xls 03版本之后 : .xlsx # 2.操作excel表格的模块 1).xlwt : 往表格中写入数据 2).wlrd : 从表格中读取数据 (以上两个模块兼容所有版本的excel文件) 3).openpyxl模块: 最近几年比较火热的操作excel表格的模块 (03版本之前的兼容性较差) 4).pandas模块:比openpyxl更高级一般用于自动化办公 (可以操作多种格式文件不止excel表格) # 3.openpyxl的操作 """详细见官方文档"""
from openpyxl import Workbook # 1.创建excel文件 wb = Workbook() # 2.创建多个工作簿 wb1 = wb.create_sheet('备胎通讯录') wb2 = wb.create_sheet('舔狗通讯录') wb3 = wb.create_sheet('女友通讯录') # 3.修改工作簿地位置 wb4 = wb.create_sheet('富婆通讯录',0) # 4.修改工作簿名称,颜色 wb4.title = '备胎名单' wb4.sheet_properties.tabColor = '000000' # 5.填写数据的方式1 wb4['F6'] = 666 # 6.填写数据的方式2 row(行) column(列) wb4.cell(row=6, column=5, value='hanser') # 7.填写数据的方式3 wb4.append(['编号', '姓名', '年龄', '爱好']) wb4.append([4, 'oscar', 38, 'ball']) # 正常写四个单元格 wb4.append([5, 'jerry', 'ball']) # 只写前三个单元格 wb4.append([6, 'tom', 88, 'ball', '哈哈哈']) # 写前五单元格 # 8.填写excel表格里的函数计算(数学公式) wb4['A1'] = 666 wb4['A2'] = 666 wb4['B2'] = '=sum(A1:A4)' wb4.cell(row=2, column=3, value='=sum(A1:A2)') # 9.创建并保存操作的文件和数据 wb.save(r'111.xlsx')
openpyxl模块读取数据
from openpyxl import load_workbook # 1.指定读取文件 wb = load_workbook(r'111.xlsx', data_only=True) # 2.查看所有工作簿的名称 print(wb.sheetnames) # ['备胎名单', 'Sheet', '备胎通讯录', '舔狗通讯录', '女友通讯录'] # 3.指定某个工作簿 wb1 = wb['备胎名单'] # 4.读取工作簿相关操作 print(wb1.max_row) # 获取数据所在的最大行数 print(wb1.max_column) # 获取数据所在的最大列数 print(wb1['A1'].value) # 读取A1单元格内容 print(wb1['B2'].value) # 如果B2单元格是函数计算(数学公式),则读取结果在指定读取文件时加入参数 data_only=True # 5.循环读取每行数据 for i in wb1.rows: print([d.value for d in i]) # 6.循环读取每列数据 for j in wb1.columns: print([d.value for d in j])
分类:
python基础 / 模块
, python基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律