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

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


目录

一、项目结构

二、详细说明

三、注意事项

四、代码解析

[1. 导入必要的库](#1. 导入必要的库)

[2. 定义 LaJi 类并初始化](#2. 定义 LaJi 类并初始化)

[3. 获取数据](#3. 获取数据)

[4. 主程序](#4. 主程序)

五、完整代码


一、项目结构

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

二、详细说明

LaJi 类

  • __init__方法:

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

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

三、注意事项

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

四、代码解析

1. 导入必要的库

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

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

2. 定义 LaJi 类并初始化

python 复制代码
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 文件中。

python 复制代码
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**方法获取数据。

python 复制代码
if __name__ == '__main__':
    lj = LaJi()
    lj.get_Data()

五、结果展示


六、完整代码

python 复制代码
#!/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()
相关推荐
龙粤GEO8 小时前
实体Entity在GEO中代表什么含义
人工智能
剑雨巍巍10 小时前
AI Agent面试之基础概念
人工智能
微帧Visionular10 小时前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频
武子康10 小时前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
云智慧AIOps社区10 小时前
智能巡检机器人应用场景解析:机房巡检、园区安防、管廊巡视与展厅导览
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·机房巡检机器人·导览机器人
EnCi Zheng10 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
赛博守夜人10 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全
lovingsoft10 小时前
AI 时代未来软件形态趋势:从固定功能应用,走向意图驱动、智能体原生的柔性系统-浅析
人工智能
GlobalInfo10 小时前
重磅发布 | 2026年船体清洁机器人行业研究报告:市场规模、发展前景与十五五战略地图
大数据·人工智能·机器人
海宇服务10 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化园区商户免押租赁资信核验网关
大数据·人工智能·架构·自动化