首页 > 其他分享 >request模块和openpyxl模块

request模块和openpyxl模块

时间:2022-10-26 21:00:20浏览次数:60  
标签:openpyxl request list re 模块 res pip data

1.第三方模块的下载应由

第三方模块:别人写的模块 一般情况下功能都特别强大
    
我们如果想使用第三方模块 第一次必须先下载后面才可以反复使用(等同于内置模块)

下载第三方模块的方式
	1.pip工具
    	注意每个解释器都有pip工具 如果我们的电脑上有多个版本的解释器那么我们在使用pip的时候一定要注意到底用的是哪一个 否则极其任意出现使用的是A版本解释器然后用B版本的pip下载模块
       为了避免pip冲突 我们在使用的时候可以添加对应的版本号
    	   python27			 pip2.7
     	  python36			pip3.6
         python38			pip3.8
  		下载第三方模块的句式
        	pip install 模块名
       下载第三方模块临时切换仓库
    		 pip install 模块名 -i 仓库地址
       下载第三方模块指定版本(不指定默认是最新版)
    		 pip install 模块名==版本号 -i 仓库地址
	2.pycharm提供快捷方式
"""
下载第三方模块可能会出现的问题
	1.报错并有警告信息
		WARNING: You are using pip version 20.2.1;
		原因在于pip版本过低 只需要拷贝后面的命令执行更新操作即可
		d:\python38\python.exe -m pip install --upgrade pip
		更新完成后再次执行下载第三方模块的命令即可
	2.报错并含有Timeout关键字
		说明当前计算机网络不稳定 只需要换网或者重新执行几次即可
	3.报错并没有关键字
		面向百度搜索
			pip下载XXX报错:拷贝错误信息
		通常都是需要用户提前准备好一些环境才可以顺利下载
	4.下载速度很慢
		pip默认下载的仓库地址是国外的 python.org
		我们可以切换下载的地址
		pip install 模块名 -i 仓库地址
		pip的仓库地址有很多 百度查询即可
		清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
		阿里云:http://mirrors.aliyun.com/pypi/simple/
		中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
		华中科技大学:http://pypi.hustunique.com/
		豆瓣源:http://pypi.douban.com/simple/
		腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
		华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
"""

2.网络爬虫模块之requests模块

requests模块能够模拟浏览器发送网络请求,相当于获取网页源码

1.朝指定网址发送请求获取页面(等价于:浏览器地址栏输入网址回车访问),获取到的网页数据是二进制类型
import requests
res = requests.get('http://www.redbull.com.cn/about/branch')
print(res.content) 

2.可以指定编码,按照utf8来解码,就可以看到正常的网页源码
res.encoding = 'utf8'  
print(res.text)

3.网络爬虫实战之爬取链家二手房数据

用requests模块之后可以直接获取到网页的源码,不需要上网页复制

import requests
import re

res = requests.get('https://sh.lianjia.com/ershoufang/pudong/')
data = res.text
# print(data)
tittle_list = re.findall('data-is_focus="" data-sl="">(.*?)</a>', data)  # 标题集合
street_list = re.findall('<a href=".*?" target="_blank">(.*?)</a> </div></div><div class="address">', data)  # 街道
name_list = re.findall('data-log_index=".*?" data-el="region">(.*?) </a>', data)  # 小区名
attention_list = re.findall('<div class="followInfo"><span class="starIcon"></span>(.*?) / .*?</div>', data)  # 关注人数列表
total_list = re.findall('<div class="totalPrice totalPrice2"><i> </i><span class="">(.*?)</span><i>万</i>', data)  # 总价
unit_list = re.findall('</div><div class="unitPrice" data-hid=".*?" data-rid=".*?" data-price=".*?"><span>(.*?)元/平</span></div></div></div><div class="listButtonContainer">', data)  # 单价
res = zip(tittle_list, street_list, name_list, attention_list, total_list, unit_list)
# print(list(res))

with open('houseinfo.txt', 'w', encoding='utf8') as f:
    for data in res:
        print("""
        房屋标题:%s
        街道名称:%s
        小区名称:%s
        关注人数:%s
        总价(万元):%s
        单价(元):%s
        """ % data)
        f.write("""
        房屋标题:%s
        街道名称:%s
        小区名称:%s
        关注人数:%s
        总价(万元):%s
        单价(元):%s
        """ % data)

4.自动化办公领域至openpyxl模块

1.excel文件的后缀名问题
	03版本之前
    	.xls
 	03版本之后
    	.xlsx
        
        
2.操作excel表格的第三方模块
	xlwt往表格中写入数据、wlrd从表格中读取数据
    	兼容所有版本的excel文件
 	openpyxl最近几年比较火热的操作excel表格的模块
    	03版本之前的兼容性较差
	ps:还有很多操作excel表格的模块 甚至涵盖了上述的模块>>>:pandas
       
3.openpyxl操作
1.导入模块
from openpyxl import Workbook
2.创建一个excel文件
wb = Workbook
3.创建多个工作簿()
wb1 = wb.create_sheet('帅哥名单')
wb2 = wb.create_sheet('靓女名单')
4.保存文件(保存文件一定要在所有操作最下面,如果保存文件下面还有操作则执行不了)
wb.save(r'111.xlsx') 
5.改工作簿位置:想要把某个创立的工作簿放在最前面,只需要再工作簿第二个参数写上0
wb1 = wb.create_sheet('帅哥名单', 0)
6.如果文件栏多出一个文件,并且该文件前面有~说明该文件一打开
7.可以修改工作簿名称
wb3.title = '中学生名单'
8.还可以改工作簿图标颜色
wb3.sheet_properties.tabColor = '1072BA'
9.写入表格方式1:
wb3['C3'] = 666
10.写入表格方式2:row是行,column是列,value是插入的内容
wb3.cell(row=3, column=1, value='max')
11.写入数据方式3:
wb1.append(['编号', '姓名', '年龄', '电话'])
wb1.append([1, 'jason', 18, 123])
wb1.append([2, 'max', 25, 456])
wb1.append([3, 'kitty', 28, 789])
"""
如果写入的数据列数和第一行不一样,有的信息未填写,那么直接按照顺序传入
"""
wb1.append([4, 'jerry', 55, 741, 666])
12.填写数学公式
wb2.cell(row=1, column=1, value=1)
wb2.cell(row=2, column=1, value=2)
wb2.cell(row=3, column=1, value=3)
wb2['A4'] = '=sum(A1:A3)'
wb2.cell(row=5, column=1, value= '=sum(a1:a4)')

5.openpyxl模块实战

爬取链家第一页房产信息:
    
import requests
import re

res = requests.get('https://sh.lianjia.com/ershoufang/pudong/')
data = res.text
# print(data)
tittle_list = re.findall('data-is_focus="" data-sl="">(.*?)</a>', data)  # 标题集合
street_list = re.findall('<a href=".*?" target="_blank">(.*?)</a> </div></div><div class="address">', data)  # 街道
name_list = re.findall('data-log_index=".*?" data-el="region">(.*?) </a>', data)  # 小区名
attention_list = re.findall('<div class="followInfo"><span class="starIcon"></span>(.*?) / .*?</div>', data)  # 关注人数列表
total_list = re.findall('<div class="totalPrice totalPrice2"><i> </i><span class="">(.*?)</span><i>万</i>', data)  # 总价
unit_list = re.findall('</div><div class="unitPrice" data-hid=".*?" data-rid=".*?" data-price=".*?"><span>(.*?)元/平</span></div></div></div><div class="listButtonContainer">', data)  # 单价
res = zip(tittle_list, street_list, name_list, attention_list, total_list, unit_list)

from openpyxl import Workbook
wb = Workbook()
wb1 = wb.create_sheet('公司信息', 0)
wb1.append(['房屋标题', '街道名称', '小区名称', '关注人数', '总价(万元)', '单价(元)'])
for data in res:
    wb1.append(data)
wb.save(r'company_info.xlsx')

6.pandas模块

"""
openpyxl主要用于数据的写入 至于后续的表单操作它并不是很擅长 如果想做需要更高级的模块pandas

import pandas

data_dict = {
    "公司名称": comp_title_list,
    "公司地址": comp_address_list,
    "公司邮编": comp_email_list,
    "公司电话": comp_phone_list
}
# 将字典转换成pandas里面的DataFrame数据结构
df = pandas.DataFrame(data_dict)
# 直接保存成excel文件
df.to_excel(r'pd_comp_info.xlsx')



excel软件正常可以打开操作的数据集在10万左右 一旦数据集过大 软件操作几乎无效
需要使用代码操作>>>:pandas模块
"""

标签:openpyxl,request,list,re,模块,res,pip,data
From: https://www.cnblogs.com/zkz0206/p/16830023.html

相关文章

  • 第三方模块的下载和使用,requests模块,openpyxl模块
    第三方模块的下载和使用之前我们在刚学模块的时候说过模块有几个分类:1.内置模块2.自定义模块3.第三方模块今天我们就学习了第三方模块的下载与使用方法我们如果想要......
  • python入门基础之第三方模块
    python入门基础之第三方模块第三方模块的下载与使用所谓第三方模块,就是别人写的模块,一般功能都比较强大。我们如果想使用第三方模块,第一次必须先下载后面才可以反复使用(......
  • 第三方模块下载及requests和openpyxl模块使用
    目录第三方模块的下载与使用网络爬虫模块之requests模块网络爬虫实战之爬取链家二手房数据自动化办公领域之openpyxl模块第三方模块的下载与使用第三方模块:别人写的模块......
  • py第三方模块
    今日内容概要第三方模块的下载与使用网络爬虫模块之requests模块网络爬虫实战之爬取链家二手房数据自动化办公领域之openpyxl模块第三方模块的扩展(模块叠模块)......
  • 爬虫、openpyxl、pandas
    目录今日内容概要今日内容详细作业详解第三方模块的下载与使用网络爬虫模块之requests模块网络爬虫实战之爬取链家二手房数据自动化办公领域之openpyxl模块homework今日内......
  • requests模块和openpyxl模块
    第三方模块的下载和使用1,第三方模块就是别人大神们已经写好的模块,功能特别强大。我们如果像使用第三方模块就先要进行下载。下载完成后才可以在python中直接调用2.下......
  • python进阶之路21 正则应用 第三方模块之requests模块 openpyxl模块 简易爬虫(panda
    作业讲解"""网络爬虫没有我们现在接触的那么简单 有时候页面数据无法直接拷贝获取 有时候页面还存在防爬机制弄不好ip会被短暂拉黑"""http://www.redbull.com.cn/ab......
  • 第三方模块的下载与使用 requests模块 openpyxl模块
    今日内容第三方模块下载操作第三方模块:别人写的魔魁啊一般情况下都很强大python中模块很多如果想使用第三方模块第一次必须先下载后面就可以反复使用=内置......
  • 23、python模块篇 第三方模块、requests模块、openpyxl模块
    目录一、第三方模块的下载与使用1、什么是第三方模块2、如何安装第三方模块方式一:pip工具方式二:pycharm中下载3、注意事项1、报错并有警告信息2、报错,提示关键字3、报错,无......
  • 第三方模块
    python第三方模块下载与安装第三方模块,也就是其他大佬写好的模块,它的功能一般是十分强大的,但是,在我们使用前需要进行下载,好处就是,第一次下载完毕后,我们就相当于将这个第......