首页 > 其他分享 >第三方模块之request模块,openpyxl模块

第三方模块之request模块,openpyxl模块

时间:2022-10-26 22:04:00浏览次数:50  
标签:wb4 openpyxl request list 模块 print home data

第三方模块下载

# 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])

 

                                                                                                                                                                                                                                                                                                                                                 

标签:wb4,openpyxl,request,list,模块,print,home,data
From: https://www.cnblogs.com/juzijunjun/p/16830217.html

相关文章