第三模块的下载、requests模块、openpyxl模块

第三方模块的下载安装

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

image
image

下载第三模块的方式

​ 1.pip工具

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

image

针对下载第三模块时可能会出现的问题

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)

image

自动化办公领域之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模块
"""

image

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)
posted @   小福福  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
  1. 1 原来你也在这儿 温余福
  2. 2 世间美好和你环环扣扣 温余福
  3. 3 随风起舞 温余福
  4. 4 罪恶都市 温余福
原来你也在这儿 - 温余福
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 姚谦

作曲 : 中島みゆき

编曲 : Terence Teo

制作人 : 朱敬然

请允许我尘埃落定

请允许我尘埃落定

用沉默埋葬了过去

满身风雨我从海上来

才隐居在这沙漠里

该隐瞒的事总清晰

千言万语只能无语

爱是天时地利的迷信

喔 原来你也在这里

啊 那一个人

是不是只存在梦境里

为什么我用尽全身力气

却换来半生回忆

若不是你渴望眼睛

若不是我救赎心情

在千山万水人海相遇

喔 原来你也在这里

请允许我尘埃落定

请允许我尘埃落定

用沉默埋葬了过去

满身风雨我从海上来

才隐居在这沙漠里

该隐瞒的事总清晰

千言万语只能无语

爱是天时地利的迷信

喔 原来你也在这里

啊 那一个人

是不是只存在梦境里

为什么我用尽全身力气

却换来半生回忆

若不是你渴望眼睛

若不是我救赎心情

在千山万水人海相遇

喔 原来你也在这里

啊 那一个人

啊 那一个人

是不是只存在梦境里

为什么我用尽全身力气

却换来半生回忆

若不是你渴望眼睛

若不是我救赎心情

在千山万水人海相遇

喔 原来你也在这里

该隐瞒的事总清晰

千言万语只能无语

爱是天时地利的迷信

喔 原来你也在这里

OT: AISARERU HANA AISAREXIU HANA

OT: AISARERU HANA AISAREXIU HANA

(中文版:原来你也在这里)

OP: Yamaha Music Publishing Inc

SP:百代音乐版权代理(北京)有限公司

配唱制作人:翁乙仁

点击右上角即可分享
微信分享提示