21

今日内容概要

第三方模块下载与使用

#第三方模块
	 别人写的模块 一般情况下功能都特别强大
     我们如果要使用第三方模块必须要先下载 才可以反复使用
#下载第三方模块的方式以及注意
	1.pip工具
    	每一个python解释器都自带pip工具 但是在不同版本中pip版本也不同 我们要注意在下载模块时下载到的是哪一个版本
        下载模块的语句
        	pip install 模块名
        下载模块临时切换仓库
        	pip install 模块名 -i 仓库地址
        下载模块的指定版本(默认最新版)
        	pip install 模块名==版本号 -i 仓库地址
#除了可以使用代码实现 在pycharm里是提供了快捷方式

image

在下载模块可能会出现的问题 以及解决方案

#1.报错并附带警告信息
	WARNING: You are using pip version 20.2.1
    提示 pip的版本太低 需要更新
    d:\python38\python.exe -m pip install --upgrade pip
    执行此命名可以自动更新 更新完成重新输入指令就行
#2.报错并含有Timeout关键字
	提示的意思就是当前网络不稳定
    只要换网重新执行几次就行
#3.报错中若没有关键字
	直接百度搜:
    	pip下载(模块名)报错:报错信息
     这类报错一般是要在下载前准备一些东西
#4.下载的速度慢
	pip默认的下载地址是在国外 python.org
    我们可以手动切换下载的地址
    pip install 模块名 -i 仓库地址
   	eg:
    	清华大学 :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/
'''补充:更换下载地址并没有实质性的区别 只是为了提高下载的速度'''

网络爬虫模块之requests模块

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

import requests


#1.朝之指定网址发送请求获取页面数据(等价于:浏览器地址栏输入网址回车访问)
代码实现:
	res = requests('网址名')
    print(res.content)  # 获取butes类型的网页数据(二进制)
    res.encoding = 'utf8'   #指定编码
    print(res.txt)      # 获取字符串类型的网页数据(默认按照utf8)

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

import requests
import re

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

image

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)

image

#以次类推
#我们可以获取到我们所需的数据 让后将其总结到一起
可以使用到zip()
home = zip(home_title_list,home_street_list)
#也可以选择写入到文件保存
with open(r'文件地址','w',encoding='utf8') as f:
    for data in home:
        f.write('''
        1.信息1:%s
        2.信息2:%s
        '''data)

自动化办公领域之openpyxl模块

1.excel文件的后缀问题
	03版本之前
    	.xls
    02版本之前
    	.xlsx
        
2.操作excel表格的第三方模块
	xlwt往表格中写入数据,wlrd从表格中读取数据
    	兼容性所有版本的excel文件
    openpyxl最近几年比较火热的操作excel表格的模块
    	03版本之前的兼容性较差
    ps:还有很多操作excel表格的模块 甚至覆盖了上述的模块>>>:pandas
            
3.openpyxl操作:
    '''在官方文档中有详细的记载'''
    from openpyxl import Workbook
    #创建一个excel文件
    wb = Workbook()
    
    #在一个excel文件内创建多个工作簿
    wb1 = wb.create_sheet('学生名单')
    wb2 = wb.create_sheet('上海富婆通讯录')
    
    #还可以移动位置
    wb3 = wb.create_sheet('上海富婆通讯录',0)  #移至最前
    
    #二次修改工作簿名字
    wb3.title = '上海米女通讯录'
    
    #修改字体及颜色
    wb4.sheet_properties.tabColor = '1072BA'
    
    #填写数据的方式
    1.wb4['G4'] = 666    # 在G4位置填写数据666
    2.wb4.cell(row=3, column=1, value=666)  #在行数为3列数为1的位置填写数据666
    3.wb4.append()  默认横着填写
    
    #填写数学公式
    wb4.call(row=a,column=b,value='c')
    a处填写行数 b处填写列数 c处可以填写数据值 也可以直接填写数学公式
    eg:
    wb4.call(row=4,column=4,value='sum(A1,A3)')
    计算A1到A3的总和 将结果直接写道4,4
    
    #保存excel文件
    wb4.save(r'111.xlsx')
    
'''
openpyxl 主要用于数据的写入 至于后续的表单操作并不擅长 如果想做需要更高级的模块pands

import pands

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

excel软件正常可以打开操作的数据集在10万左右 一旦数据集过大 软件操作基本无效 需要代码进行操作>>>:pandas模块
'''
posted @ 2022-10-26 18:30  早点早点灬  阅读(456)  评论(0)    收藏  举报