爬虫 | 垃圾处理设施数据的获取与保存

server/2024/12/22 0:42:16/

Hi,大家好,我是半亩花海。本项目通过发送网络请求(requests),从指定的 URL 获取垃圾处理设施的相关数据,并将数据保存到 CSV 文件中,以供后续分析和利用。


目录

一、项目结构

二、详细说明

三、注意事项

四、代码解析

1. 导入必要的库

2. 定义 LaJi 类并初始化

3. 获取数据

4. 主程序

五、完整代码


一、项目结构

  • laji.py:Python 脚本文件,包含以下内容:
    • 导入了 requests 库,用于发送网络请求。
    • 定义了一个名为 LaJi 的类,负责处理垃圾数据的获取和保存。
    • get_Data 方法用于发送网络请求获取数据,并将数据解析后保存到 CSV 文件中。

二、详细说明

LaJi 类

  • __init__方法:

    • 初始化了请求头 headers,用于模拟浏览器发送请求。
    • 设置了请求的URL地址。
  • get_Data方法:

    • 使用 requests 库发送 GET 请求获取数据。
    • 解析响应的 JSON 数据。
    • 将数据逐行写入 CSV 文件,包括垃圾处理设施的名称、创建时间、地区名称、设施代码、地址、制造日期、电力信息、环境负责人、锅炉数量等字段。

三、注意事项

  • 请确保网络连接正常,以便顺利获取数据。
  • 在获取和使用数据时,请遵守相关法律法规,保护数据的隐私和版权。

四、代码解析

1. 导入必要的库

导入 Python 的requests库,用于发送 HTTP 请求,并且可以方便地处理返回的响应数据

import requests  # 发送网络请求的工具包,可以返回响应的数据

2. 定义 LaJi 类并初始化

class LaJi():def __init__(self):self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'}self.url = 'https://ljgk.envsc.cn/OutInterface/GetPSList.ashx?regionCode=0&psname=&SystemType=C16A882D480E678F&sgn=fda6bbcb85cbdb565fe8f59c7d78769b5828076b&ts=1658475012897&tc=30317059'

3. 获取数据

定义了一个名为 get_Data 的方法,用于获取数据并保存到 CSV 文件中。首先,使用 requests.get 方法发送 GET 请求获取数据,然后通过 response.json() 方法将响应数据解析为 JSON 格式。接着,遍历数据,逐个提取垃圾处理设施的各个字段的值,并将这些值写入 CSV 文件中。

def get_Data(self):response = requests.get(self.url, headers=self.headers)data = response.json()for i in data:ps_name = i['ps_name']create_time = i['create_time']fullregion_name = i['fullregion_name']ps_code = i['ps_code']address = i['address']manufacture_date = i['manufacture_date']electric_power = i['electric_power']environment_principal = i['environment_principal']boiler_num = i['boiler_num']with open('垃圾.csv', 'a+') as f:f.write('{},{},{},{},{},{},{},{},{}\n'.format(ps_name, create_time, fullregion_name, ps_code, address,manufacture_date, electric_power, environment_principal,boiler_num))

4. 主程序

使用 if __name__ == '__main__': 来判断是否是主程序入口。如果是主程序入口,则实例化 LaJi 类,并调用 get_Data 方法获取数据。

if __name__ == '__main__':lj = LaJi()lj.get_Data()

五、结果展示 


六、完整代码

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import requests  # 发送网络请求的工具包,可以返回响应的数据class LaJi():def __init__(self):self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'}self.url = 'https://ljgk.envsc.cn/OutInterface/GetPSList.ashx?regionCode=0&psname=&SystemType=C16A882D480E678F&sgn=fda6bbcb85cbdb565fe8f59c7d78769b5828076b&ts=1658475012897&tc=30317059'def get_Data(self):response = requests.get(self.url, headers=self.headers)# print(response.text)data = response.json()for i in data:print(i)ps_name = i['ps_name']create_time = i['create_time']fullregion_name = i['fullregion_name']ps_code = i['ps_code']address = i['address']manufacture_date = i['manufacture_date']electric_power = i['electric_power']environment_principal = i['environment_principal']boiler_num = i['boiler_num']# 保存数据with open('垃圾.csv', 'a+') as f:f.write('{},{},{},{},{},{},{},{},{}\n'.format(ps_name, create_time, fullregion_name, ps_code, address,manufacture_date, electric_power, environment_principal,boiler_num))if __name__ == '__main__':lj = LaJi()lj.get_Data()

http://www.ppmy.cn/server/1698.html

相关文章

【Linux】进程的优先级环境变量

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 进程的优先级2.1 什么是优先级2.2 为什么要有优先级2.3 优先级的查看方式2.4 对优先级调整 3. 命令行参数4. 环境变量4.1 环境变量与配置文件4.1.1 环境变量初步介绍4.1.2 配置文件 4.2 更多环境变量4.3 整…

C++力扣Leetcode算法4--排序算法

目录 快速排序--递归 归并排序--递归 插入排序 冒泡排序 选择排序 215 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 347. 前 K 个高频元素 快速排序--递归 void quick_sort(vector<int> &nums, int l, int r) {if (l 1 > r) …

代码随想录图论

1. 所有可能的路径 class Solution:def allPathsSourceTarget(self, graph: List[List[int]]) -> List[List[int]]:def dfs(graph, result, path, root): #result 返回结果, path记录路径, root记录遍历到了第几个节点if root len(graph) - 1: #如果遍历到最后…

.NET Framework安装失败的原因及解决方法

.NET Framework安装失败的原因及解决方法 大家好我是艾西&#xff0c;一个做服务器租用的游戏爱好者兼网络架构系统环境问题网络工具人。在我们平时使用PC安装某些程序会出现.NET Framework缺失的提示&#xff0c;那么也会有很多的小伙伴搞不懂什么原因导致的&#xff0c;这个问…

【YUNBEE云贝-进阶课】MySQL8.0性能优化实战培训

众多已经学习过MySQL 8.0 OCP认证专家的课程的同学们对 MySQL 8.0 的安装部署、体系结构、配置监控、用户管理、主从复制、系统运维、MGR等基础操作和动手实验有了一定的学习基础.很多学员反馈希望更进一步提升技术能力、解决工作中碰到的性能问题。 针对MySQL8.0的数据库性能优…

C语言中的控制语句(分支语句 if、switch、三目运算符)

程序执行的三大流程 顺序 : 从上向下&#xff0c; 顺序执行代码分支 : 根据条件判断&#xff0c; 决定执行代码的分支循环 : 让特定代码重复的执行 分支语句 条件语句用来根据不同的条件来执行不同的语句&#xff0c;C语言中常用的条件语句包括if语句和switch语句。 if 语句…

固体矿产资源储量分类GBT17766-2020

1999分类标准采用三轴体系划分资源量与处理&#xff0c;表达复杂、经济意义划分过细、实用性不强 虽然不再采用”三轴“表达方式&#xff0c;但依然考虑地质可靠程度、经济意义、可行性评价 矿产资源勘查&#xff1a;通常依靠地球科学知识&#xff0c;运用地质填图&#xff0…

View-Consistent 3D Editing with Gaussian Splatting

View-Consistent 3D Editing with Gaussian Splatting 使用高斯溅射进行视图一致的3D编辑 Yuxuan Wang 王宇轩11Xuanyu Yi 易轩宇11Zike Wu 吴子可11Na Zhao 赵娜22Long Chen 龙宸33Hanwang Zhang 张汉旺1144 Abstract 摘要 View-Consistent 3D Editing with Gaussian Sp…