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

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.hqwc.cn/news/620028.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 21c 数据库迁移到DM8(达梦)数据库

一、环境准备 1、创建脚本 执行dmCreateUser.sql脚本创建GLJ用户(注意:需要与需要迁移的oracle用户名一样),如,脚本内容如下: -- 开始将输出重定向到指定的日志文件 spool start /home/dmdba/dmdbms/sql/…

EasyRecovery数据恢复软件2024试用版下载安装包

EasyRecovery支持的文件格式非常广泛,几乎涵盖了用户日常所需的所有文件类型。具体来说,它支持恢复的办公文档类型包括Microsoft Word、Excel、PPT、MS office、Adobe PDF、Access等。此外,对于音频文件,EasyRecovery同样支持丰富…

[大模型]DeepSeek-7B-chat langchain 接入

DeepSeek-7B-chat langchain 接入 这篇主要讲 DeepSeek-7B-chat 如何对接Langchain中 langchain.llms.base 的 LLM 模块,其他关于如何对接向量数据库和gradio的部分请参考internLM langchain模块。 安装依赖 除了需要安装模型的运行依赖之外,还需要安…

45.基于SpringBoot + Vue实现的前后端分离-驾校预约学习系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统,采用SpringBoot Vue框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SpringBoot Vue技术的驾校预约学习系统设计与实现管理工作…

C#版Facefusion ,换脸器和增强器

C#版Facefusion ,换脸器和增强器 目录 说明 效果 项目 调用代码 说明 Facefusion是一款最新的开源AI视频/图片换脸项目。是原来ROOP的项目的延续。项目官方介绍只有一句话,下一代换脸器和增强器。 代码实现参考 https://github.com/facefusion/f…

面试算法-177-二叉搜索树中第K小的元素

题目 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1: 输入:root [3,1,4,null,2], k 1 输出:1 解 class Solution…

Science Robotics 封面论文:Google DeepMind 通过深度强化学习赋予双足机器人敏捷的足球技能

创造通用具身智能,即创造能够在物理世界中敏捷、灵巧和理解的智能体——就像动物或人类一样——是人工智能 (AI) 研究人员和机器人专家的长期目标之一。动物和人类不仅是自己身体的主人,能够流畅而轻松地执行和组合复杂的动作&…

使用这几款插件,GitHub阅读代码效率噌噌噌

** octotree:生成仓库目录 ** 这可能是我用得最多的一款插件了,大家有没有遇到过这种情况。每次点击一个文件后,整个文件列表就会被隐藏,想查看其它文件只能回退后再次进入。别提有多蛋疼了…… 而这款插件就完美解决了这个问题…

卷积神经网络结构组成与解释

卷积神经网络结构组成与解释 卷积神经网络是以卷积层为主的深度网路结构,网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积(元素相乘再求和)的操作。 1. 卷积层 常见的卷积操作如下&#x…

Vue指令案例

通过Vue完成表格数据的渲染展示 最终结果为&#xff1a; <!DOCTYPE html> <html lang"en"><head><script src"vue.js">//引入vue文件</script><meta charset"UTF-8"><meta name"viewport" c…

Dask库一个神奇处理大数据在python的库

Dask库一个神奇处理大数据在python的库 Dask库&#xff0c;一个神奇处理大数据的库 什么是 Dask&#xff1f; Dask 是一个灵活的并行计算库,旨在处理大规模数据集.它提供了类似于 Pandas 和 NumPy 的数据结构,但能够有效地处理比内存更大的数据集.Dask 可以在单台机器或分布式…

商业银行风险管理

商业银行风险管理 银行业风险类型概述管理信用风险管理利率风险缺口分析 持续期分析利率互换消除利率风险表外业务的风险管理 银行业风险类型概述 信用风险市场风险&#xff08;利率风险、汇率风险等市场价 格风险&#xff09;财务风险&#xff08;流动性风险&#xff09;操作…