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


下载第三模块的方式
1.pip工具
注意每一个解释器都有pip工具 如果我们的电脑有多个版本的解释器那么我们在使用pip的时候一定要注意到底用的是哪一个 否则极其任意出现使用的是A版本解释器用B版本的pip下载模块
为了避免匹配冲突 我们在使用的时候可以添加对应的版本号
python27 pip2.7
python36 pip3.6
python38 pip3.8
下载第三方模块的句式
pip install 模块名
下载第三方临时切换你仓库(为了将网速变快 因为默认的下载的地址是过国外的)
pip install 模块名-i 仓库地址
下崽第三方模块指定版本(不指定默认是最新版)
pip install 模块名==版本号-i 仓库地址

针对下载第三模块时可能会出现的问题
1.报错并有警告信息
如:WARNIG: You are using pip version 20.2.1;
原因是在于pip版本过低 只需要拷贝后面的命令执行更新操作即可
如:d:\python38\python.exe -m pip install -- upgrade pip
更新完成后再次执行下载第三方模块的命令即可
2.报错并含有timeout关键字
说明当前计算机网络不稳定 只需要换网或者重新执行几次即可
3.报错并没有关键字
面向百度搜索拷贝一些错误信息进行快速查询报错
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.pycharm提供的快捷方式
1.直接 import 导入模块名 根据pychram提示的红灯泡点击 install 安装就会自定进行下载
2.或者设置里下载
网络爬虫模块之requests模块
import requests
res = requests.get('http://www.redbull.com.cn/about/branch') # 朝指定网址发送请求获取页面数据(等价于:浏览器地址栏输入网址回车访问)
# print(res.content) # 获取bytes类似的网页数据(二进制)
# res.encoding = 'utf8' # 指定编码
print(res.text) #获取字符串类型的网页数据(默认按照系统编码解码默认是utf8 且可以指定编码解码)
网络爬虫实战
import requests
import re
# 朝指定网址发送请求获取页面数据(等价于:浏览器地址栏输入网址回车访问)
# res = requests.get('http://www.redbull.com.cn/about/branch')
# print(res.content) # 获取bytes类似的网页数据(二进制)
# res.encoding = 'utf8' # 指定编码
# print(res.text) #获取字符串类型的网页数据(默认按照系统编码解码默认是utf8 且可以指定编码解码)
res = requests.get('https://sh.lianjia.com/ershoufang/pudong/')
data = res.text
info_title = re.findall('a class="" href="https://sh.lianjia.com/.*?" target="_blank" data-log_index=".*?" data-el="ershoufang" data-housecode=".*?" data-is_focus=".*?" data-sl="">(.*?)</a>', data)
# print(info)
info_add = re.findall('<div class="positionInfo"><span class="positionIcon"></span><a href="https://sh.lianjia.com/.*?/" target=".*?" data-log_index=".*?" data-el=".*?">(.*?)', data)
# print(info_add)
info_addd = re.findall('</a> - <a href="https://sh.lianjia.com/ershoufang/.*?/" target=".*?">(.*?)</a> </div>', data)
# print(info_addd)
info_data = re.findall('<div class="houseInfo"><span class="houseIcon"></span>(.*?)</div>', data)
# print(info_data)
info_pop = re.findall('<div class="followInfo"><span class="starIcon"></span>(.*?) / .*?</div>', data)
# print(info_pop)
info_price = re.findall('<span class="">(.*?)</span>', data)
info_money = re.findall('<div class="unitPrice" data-hid=".*?" data-rid=".*?" data-price=".*?"><span>(.*?)元/平</span></div>', data)
# print(info_money)
info = zip(info_title,info_add,info_addd,info_data,info_pop,info_price,info_money)
# 用openpyxl模块将爬取的数据写入到excel表格中
from openpyxl import Workbook
res = Workbook()
data = res.create_sheet('链家二手房', 0)
data.append(['房屋标题', '小区名称', '街道名称', '详细信息', '关注程度', '房屋总价', '房屋单价'])
for i in info:
data.append(i)
res.save('SB.xlsx')
with open(r'a.txt', 'w', encoding='utf8') as f:
for i in info:
print("""
房屋标题:%s
小区名称:%s
街道名称:%s
详细信息:%s
关注程度:%s
房屋总价:%s
房屋单价:%s
"""% i)
f.write('''
房屋标题:%s
小区名称:%s
街道名称:%s
详细信息:%s
关注程度:%s
房屋总价:%s
房屋单价:%s\n
'''% i)

自动化办公领域之openpyxl模块
1.excel文件的后缀名问题
03版本之前
.xls
03版本之后
.xlsx
2.操作excel表格的第三方模块
xlwt往表格中写入数据、wolrd从表格中读取数据
兼容所有版权的excel文件
openpyxl最近几年比较火热的操作excel表格提供的模块
03版本之前的兼容性比较差
(还有很多操作excel表格的模块 甚至涵盖了上述的模块>>>:pandas(是基于openpyxl的升级))
openpyxl操作之写入数据
# 学会看官方文档!Tutorial 教程
from openpyxl import Workbook
# 创建一个excel文件
bb = Workbook()
# 在文件中创建多个工作蒲
bb1 = bb.create_sheet('人员名单')
bb2 = bb.create_sheet('物品名单')
# 还可以修改默认工作蒲位置
bb3 = bb.create_sheet('废物名单', 0) # 让工作蒲名废物名单放第一位
bb3.title = '咸鱼名单'
bb3.sheet_properties.tabColor = '1070BA' # 三基色
# 填写数据方式一
bb3['C5'] = '好嗨哟'
# # 填写方式二
bb3.cell(row=2, column=3, value='好好学习') # row行 column列 value值
# 填写数学公式
bb3['A7'] = '=sum(A1:A4)' # 等号不能忘
bb3.append(['姓名', '年龄', '爱好', '身高']) # 表头字段
bb3.append(['jason', 18, 'read', 190, 200])
bb3.append(['kevin', 23, 'look', 190])
bb3.append(['oscar', 99, 'koko'])
# 保存该excel文件
bb.save(r'aaa.xlsx') # 不能忘 excel表格及名称能不能创建主要看你
# 模块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操作之读取数据
# 一个excel表格中有多的工作蒲 再读取的时候需要指明
from openpyxl import load_workbook
# 指定读取的文件
变量名 = load_workbook(指定要读取文件的路径)
l2 = load_wrokbook(r'NB.xlsx')
# 查看内部所有的工作蒲名称
print(l2.sheetnames)
# 指定某个工作蒲相关操作
l3 = l2['咸鱼名单']
# 读取工作蒲相关操作
print(l3.max_row) # 获取当前工作蒲含有数据的最大行数
print(l3.max_column) # 获取当前工作蒲含有数据的最大列数
print(l3['A2'].value) # 读取的是单元格内容如果单元格式公式读取出来的也是公式
练习
import requests
import re
url_l = 'https://sh.lianjia.com/ershoufang/pudong/pg%s/'
for i in range(1,11):
url_now = url_l % i
res = requests.get(url_now)
# print(res.text)
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_street_list = re.findall(
'<div class="positionInfo"><span class="positionIcon"></span><a href=".*?" target="_blank" data-log_index=".*?" data-el="region">.*? </a> - <a href=".*?" target="_blank">(.*?)</a> </div>',
data)
# print(home_street_list)
home_info_list = re.findall('<div class="houseInfo"><span class="houseIcon"></span>(.*?)</div>', data)
# print(home_info_list)
home_watch_list = re.findall('<div class="followInfo"><span class="starIcon"></span>(.*?)</div>', data)
# print(home_watch_list)
home_total_price_list = re.findall(
'<div class="totalPrice totalPrice2"><i> </i><span class="">(.*?)</span><i>万</i></div>', data)
# print(home_total_price_list)
home_unit_price_list = re.findall(
'<div class="unitPrice" data-hid=".*?" data-rid=".*?" data-price=".*?"><span>(.*?)</span></div>', data)
# print(home_unit_price_list)
home_data = zip(home_title_list, home_name_list, home_street_list, home_info_list, home_watch_list,
home_total_price_list, home_unit_price_list)
with open(r'home_data.txt','a',encoding='utf8') as f:
for data in home_data:
print(
"""
房屋标题:%s
小区名称:%s
街道名称:%s
详细信息:%s
关注程度:%s
房屋总价:%s
房屋单价:%s
"""%data
)
f.write("""
房屋标题:%s
小区名称:%s
街道名称:%s
详细信息:%s
关注程度:%s
房屋总价:%s
房屋单价:%s\n
"""%data)
第三模块的下载、requests模块、openpyxl模块的更多相关文章
- openpyxl模块
openpyxl模块 可以对Excel表格进行操作的模块 第三方模块需要下载 pip install openpyxl 配置永久第三方源: D:\Python36\Lib\site-packages\ ...
- [Python]-openpyxl模块Excel数据处理-读取公式的结果
日常需要Python来处理各种数据,处理Excel数据常用的库一般有openpyxl.xlrd(读取).xlwt(写入). 经过对比发现openpyxl模块比较好用. openpyxl模块 这篇笔记比 ...
- Python基础之模块:5、 第三方模块 requests模块 openpyxl模块
目录 一.第三方模块的下载与使用 1.什么是第三方模块 2.如何安装第三方模块 方式一:pip工具 方式二:pycharm中下载 3.注意事项 1.报错并有警告信息 2.报错,提示关键字 3.报错,无 ...
- 第三十三节,sys解释器相关模块
首先要引入import sys模块 sys.argv 功能:获取向脚本文件传入的参数,返回的列表,列表里的第一个元素是脚本文件路径和名称,后面的元素是传入的向脚本传入的参数 使用方法:sys.argv ...
- 浏览器行为模拟之requests、selenium模块
requests模块 前言: 通常我们利用Python写一些WEB程序.webAPI部署在服务端,让客户端request,我们作为服务器端response数据: 但也可以反主为客利用Python的re ...
- 进程、数据共享、进程锁、进程池、requests模块和bs4(beautifulsoup)模块
一.进程 1.进程间数据不共享,如下示例: import multiprocessing data_list = [] def task(arg): data_list.append(arg) pri ...
- python之openpyxl模块
一 . Python操作EXCEL库的简介 1.1 Python官方库操作excel Python官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库 ...
- 25.xlrd、xlwt和openpyxl模块的比较和使用
xlrd.xlwt和openpyxl模块的比较:1)xlrd:对xls.xlsx.xlsm文件进行读操作–读操作效率较高,推荐2)xlwt:对xls文件进行写操作–写操作效率较高,但是不能执行xlsx ...
- 日志、第三方模块(openpyxl模块)
目录 1.日志模块 2.第三方模块 内容 日志模块 1.日志模块的主要组成部分 1.logger对象:产生日志 无包装的产品 import logging logger = logging.getLo ...
- logging日志模块详细,日志模块的配置字典,第三方模块的下载与使用
logging日志模块详细 简介 用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么 了,但是当我需要看大量的地方或者在一个文件中查看的时 ...
随机推荐
- 13. Fluentd输出插件:in_forward用法详解
in_forward插件通常用于从其他节点接收日志事件,这些节点包括其他Fluentd实例.fluent-cat命令行或者Fluentd客户端程序.这是目前效率最高的日志事件接收方法. in_forw ...
- 6. EFK:免费的日志采集与可视化搜索套件
收集日志是为了做进一步的分析.收集是第一步,收集到日志后还需要进行存储.索引,以便进行快速查询分析.我们还需要一个友好的查询界面,来方便用户使用日志. 本文介绍一个免费的开源软件组合,正好可以实现上述 ...
- PAT (Basic Level) Practice 1013 数素数 分数 20
令 Pi 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输出从 PM 到 ...
- Spring Cloud Consul 入门指引
1 概述 Spring Cloud Consul 项目为 Spring Boot 应用程序提供了与 Consul 的轻松集成. Consul 是一个工具,它提供组件来解决微服务架构中一些最常见的挑战: ...
- 初等数论学习笔记 III:数论函数与筛法
初等数论学习笔记 I:同余相关. 初等数论学习笔记 II:分解质因数. 1. 数论函数 本篇笔记所有内容均与数论函数相关.因此充分了解各种数论函数的名称,定义,符号和性质是必要的. 1.1 相关定义 ...
- 使用 HammerDB 对 Citus 和 Postgres 进行 Benchmark,每分钟200万新订单处理测试(官方博客)
在为 Postgres 运行性能基准测试时,主要建议是:"自动化!" 如果您正在测量数据库性能,您可能不得不一遍又一遍地运行相同的基准测试. 要么是因为你想要一个稍微不同的配置,要 ...
- GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署
预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署, ...
- reportportal 集成 robotframework 自动化执行及结果可视化
前言: 最近领导想了个需求,想把目前组内在linux平台上执行的自动化脚本搞成可视化,如果是web站点相关日志可视化倒是简单了,ELK就是不错的选择,大部分可视化项目这种的,可以做的开起来很炫. 我们 ...
- 齐博X1-栏目的调用2
fun('sort@fathers',$fid,'cms') 获取上层多级栏目这样的,比如我们现在所属第三级栏目,现在可以利用这个函数获取第二级和第一级的栏目,当然自身也会被调用出来,所以此函数用的 ...
- NAS数据存储之NFS搭建和使用
NFS是主流异构平台的共享文件系统之一,能够支持在不同类型的系统之间通过网络进行文件共享,允许一个系统在网络上与他人共享目录和文件.NFS传输协议用于服务器和客户机之间的文件访问和共享通信,从而使客户 ...