第三方模块

第三方模块的下载与使用

第三方模块是由别人写的一些功能强大的模块
我们在使用第三方模块时必须先下载再使用,第一次下载完以后之后再使用就和内置模块一样可以反复调用了

第三方模块的下载方式
    1.pip工具(cmd命令中)
        每个解释器都有自带的pip工具,我们可以使用pip工具来下载第三方模块
        如果我们的电脑上有多个版本的解释器,那么我们在使用pip工具的时候就需要注意一下用的是哪个解释器的,否则就有可能会出现用的是3.8的解释器但却是用2.7或3.6版本的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.下载速度很慢
        pip默认的下载源是国外的 python.org
        我们只需要切换模块源即可

常用的模块源:
  		清华大学 :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/

图一

微信截图_20221026153557

网络爬虫之requests模块

requests模块能够模拟浏览器发送网络请求
import requests

朝指定网址发送请求获取页面数据(模拟浏览器地址栏输入网址访问)
res = requests.get('http://www.redbull.com.cn/about/branch')
print(res.content)  # 获取到的是bytes类型的网页数据
res.encoding = 'utf8'
print(res.text)  # 获取到的是字符串类型的网页数据   

网络爬虫实战:爬取链家二手房数据

import requests
import re

res = requests.get('https://sh.lianjia.com/ershoufang/pudong/')
# 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','w',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)

自动化办公领域之openpyxl模块

1.excel文件的后缀名问题
    03版本之前  .slx
    03版本之后  .xlsx
    
2.操作excel表格的第三方模块
    xlwt往表格中写数据
    xled从表格中读数据
    openpyxl是最近几年比较火热的操作excel表格的模块,但是对于03版本之前的excel兼容性较差
    
3.openpyxl操作
    from  openpyxl import Workbook
    wb = Workbook()  # 创建一个excel文件
    # 在一个excel文件内创建多个工作簿
    wb1 = wb.create_sheet('1')
    wb2 = wb.create_sheet('2')
    wb3 = wb.create_sheet('3')
    # 修改默认工作簿位置
    wb1 = wb.create_sheet('1', 0)
    # 还可以二次修改工作簿名称
    wb1.title = '学习资料'
    wb1.sheet_properties.tabColor = "1072BA"  # 修改工作簿名称颜色
    
    # 填写数据的方式1
    wb1['A1'] = 123
    # 填写数据的方式2
    wb1.cell(row=1, column=1, value='name')
    # 填写数据的方式3
    wb1.append(['姓名', '年龄'])  # 表头字段
    wb1.append(['jason', 18])
    wb1.append(['kevin', 19])
    wb1.append(['tony', 20])
    
    # 填写数学公式
    wb1.cell(row=1, column=1, value=12321)
    wb1.cell(row=2, column=1, value=3424)
    wb1.cell(row=3, column=1, value=23423432)
    wb1.cell(row=4, column=1, value=2332)
    wb1['A5'] = '=sum(A1:A4)'
    
    # 保存该文件
    wb.save(r'')
    
'''
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'
'''
posted on 2023-04-05 21:28  zyg111  阅读(52)  评论(0)    收藏  举报