系列文章目录
python开发低代码数据可视化大屏:pandas.read_excel读取表格
python实现直接读取excle数据实现的百度地图标注
python数据可视化开发(1):Matplotlib库基础知识
python数据可视化开发(2):pandas读取Excel的数据格式处理
python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)
文章目录
系列文章目录
前言
一、项目需求
二、项目开发
1.引入库
2.创建目录
3.保存PDF封装函数
4.核心代码
前言
本案例是实战案例开发,通过requests模块获取指定网站的pdf文档并分类保存到本地的操作。
一、项目需求
指定网址的pdf文档,通过提供的API进行读取,并按照指定的字段进行分类保存到本地;
文件命名规则:文件名.pdf
二、项目开发
1.引入库
代码如下(示例):
import requests import time import io import os
2.创建目录
代码如下(示例):
def check_dir(dir_name): # 创建目录 if not os.path.exists(dir_name): os.makedirs(dir_name) # 返回目录名称 return dir_name
3.保存PDF封装函数
- dir_name, 指定目录;
- pro_name,文件名称;
- pro_id, 通过指定的项目id读取对应的pdf资源;
- pro_types,项目类型;
# 读取对应的PDF文件 def get_pdf(dir_name, pro_name, pro_id, pro_types): send_headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "Connection": "keep-alive", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.8"} url_file = 'http://test.com?m=Surveyor&a=surveyorDetail&act=preview&pro_id={}&pro_types={}'.format(pro_id, pro_types) req = requests.get(url_file, headers=send_headers) # 通过访问互联网得到文件内容 bytes_io = io.BytesIO(req.content) # 转换为字节流 with open(r'{}/{}.pdf'.format(dir_name, pro_name), 'wb') as file: file.write(bytes_io.getvalue()) # 保存到本地 print('{}已保存...'.format(pro_name)) # 延迟2秒 time.sleep(2)
time.sleep(2)
,在开发时,建议做好获取时间的限制,防止过度占用宽带。
4.核心代码
domain_url = 'http://test.com/api/api.php?act=getAllProject&token=3cab7ce4142608c0f40c785b5ab5ca24' re = requests.get(url=domain_url) # print(re.status_code) if re.status_code == 200: print("已对接API...") r = re.json() # print(type(r['data'])) for item in r['data']: # 自动生成对应的目录 if item['pro_audit'] == '2': save_dir = check_dir('city') elif item['pro_audit'] == '3': save_dir = check_dir('county') elif item['pro_audit'] == '4': save_dir = check_dir('province') elif item['pro_audit'] == '5': save_dir = check_dir('complete') # print(save_dir) # 遍历文件 get_pdf(save_dir, item['pro_name'], item['pro_id'], item['pro_types']) else: print("无法获取API数据")
@漏刻有时