Python数据采集与处理实战:从网络爬虫到Excel数据存储完整流程

一、requests爬虫模块

1、下载requests库

按住win+R,输入cmd,在控制面板中输入下载指令:
pip install requests -i https://mirrors.aliyun.***/pypi/simple/

2、代码实现

# 对目标网址进行攻击
# 导入requests库用于发送HTTP请求
import requests

# 使用requests库发送GET请求获取指定URL的图片数据
result = requests.get("https://static-data.gaokao.***/upload/school/20241126/1732611731_7971_thumb.jpg")

# 获取响应内容并赋值给img变量
img = result.content

# 使用二进制写入模式打开文件
f = open("我的图片.png", "wb")

# 向文件中写入数据
# 将图片数据写入文件
# 使用文件对象的write方法将图片数据写入到文件中
# img变量包含了图片的二进制数据
f.write(img)

3、代码详解

  • requests.get() - 发送HTTP GET请求

requests.get() 是用于向指定URL发送HTTP GET请求的核心方法。GET请求是HTTP协议中最基础的请求方式,主要用于从服务器获取数据而不对服务器资源产生修改作用。

  • result.content - 获取响应原始字节内容

result.content 是Response对象的属性,用于访问服务器返回响应的原始字节数据。与文本内容不同,content属性提供的是未经解码的二进制数据流。需要获取的数据是一个图片数据需要用到content来获取其数据。图片、视频、音频都是属于二进制数据,必须要用content获取其数据。

  • open(“XXX.png”, “wb”) - 以二进制写入模式打开文件

open(“XXX.png”, “wb”) 是Python内置函数,用于以二进制写入模式创建或打开文件。这是文件操作的基础方法,专门用于处理二进制数据的持久化存储。

  • write() - 向文件写入数据

write() 是文件对象的方法,用于将指定数据写入已打开的文件中。这是数据持久化的关键操作,将内存中的数据转移到磁盘存储。

注:也可以将上述的几个方法合并为一句,如,open("我的图片.png", "wb").write(result.content)也可以实现上述效果

代码运行结果如下图所示:
在所写代码的同级目录下会有"我的图片.png"的图片文件

打开文件会将爬取的图片显示出来

既然可以使用requests爬虫模块将获取到的图片的信息爬取下来并存储到文件中,那有没有其他的模块将爬取到的数据并存储到excel文件中呢?

其实pandas模块就可以做到,下列就是对pandas模块的详细讲解。

二、保存数据至excel

1、下载pandas模块

按住win+R,输入cmd,在控制面板中输入下载指令:
pip install pandas

2、代码实现

# 导入 pandas (数据分析的模块)
import pandas

# 创建一个空列表,用于存储数据
list_data = []

# 创建一个空字典用于存储信息,使用键值对形式存储
dice_data1 = {}
# 添加姓名信息
dice_data1["姓名"] = "张三"
# 添加性别信息
dice_data1["性别"] = "男"
# 添加年龄信息
dice_data1["年龄"] = "18"
# 添加住址信息
dice_data1["住址"] = "深圳市南山区"

# 创建一个空字典,用于存储信息
dice_data2 = {}
# 向字典中添加姓名信息
dice_data2["姓名"] = "李四"
# 向字典中添加性别信息
dice_data2["性别"] = "女"
# 向字典中添加年龄信息
dice_data2["年龄"] = "20"
# 向字典中添加住址信息
dice_data2["住址"] = "广州市花都区"

# 将字典dice_data1和dice_data2的数据添加到列表中
list_data.append(dice_data1)
list_data.append(dice_data2)

# 打印列表数据
# 使用print函数输出变量list_data的值
print(list_data)

# 初始化数据
# 使用pandas库创建DataFrame对象
# pandas是Python中强大的数据分析库,DataFrame是其核心数据结构之一,类似于表格型数据结构
pd = pandas.DataFrame(list_data)

# 创建excel
# 使用pandas库中的to_excel方法将数据导出为Excel文件
# index=False表示不将DataFrame的索引写入Excel文件
pd.to_excel('我的数据.xlsx', index=False)

3、代码详解

  • import pandas - 导入数据分析库

import pandas 是Python中导入pandas库的语句。pandas是一个专门用于数据处理和分析的Python库,提供了高效、灵活的数据结构和数据处理工具。

  • pandas.DataFrame() - 创建二维表格数据结构

pandas.DataFrame() 是pandas库中用于创建DataFrame对象的构造函数。DataFrame是pandas的核心数据结构,代表一个二维的、大小可变的、可以存储异构类型数据的表格结构。

  • to_excel(‘XXX.xlsx’, index=False) - 导出数据到Excel文件

to_excel() 是DataFrame对象的方法,用于将表格数据导出为Excel格式的文件。这个方法封装了与Excel文件格式交互的复杂细节,提供了简单易用的数据导出接口。
第一个参数是文件路径字符串,指定生成的Excel文件的保存位置和名称
index=False 是关键参数,控制是否将DataFrame的行索引写入Excel文件
当设置为False时,不导出行索引,Excel文件中只包含数据内容
当设置为True或默认不指定时,会将行索引作为第一列写入文件

代码运行结果展示:
在所写代码的同级目录下会有"我的数据.xlsx"的文件

打开文件会将写入的数据以excel表格的形式记载在文件中

或者单击"我的数据.xlsx"文件,鼠标右键点击“打开于”,选择“在关联的应用程序中打开”,即可在关联的应用程序中打开(如WPS)

三、爬虫模块与据分析库模块实用案例

代码实现

# 模块导入
import pandas as pd
import requests


# 从公开API获取用户数据
def get_users_from_api():
    try:
        # 使用免费的测试API
        response = requests.get('https://jsonplaceholder.typicode.***/users')
        # 从响应中解析JSON数据,获取用户数据
        # 使用response对象的json()方法将响应内容转换为Python字典格式
        users_data = response.json()
        # 提取需要的信息
        processed_data = []
        for user in users_data:
            user_info = {}
            user_info["姓名"] = user.get('name', '')
            user_info["用户名"] = user.get('username', '')
            user_info["邮箱"] = user.get('email', '')
            user_info["城市"] = user.get('address', {}).get('city', '')
            user_info["电话"] = user.get('phone', '')
            user_info["公司"] = user.get('***pany', {}).get('name', '')
            processed_data.append(user_info)

        return processed_data
    except Exception as e:
        print(f"获取数据失败: {e}")
        return []


# 获取数据并保存
users_data = get_users_from_api()
if users_data:
    df = pd.DataFrame(users_data)
    df.to_excel("网络用户数据.xlsx", index=False)
    print("数据已保存到 Excel 文件!")
    print(df)
else:
    print("未能获取到数据")

运行效果


四、总结

本文详细讲解了使用requests模块进行网络爬虫和pandas模块进行数据处理的全流程,从基础的图片下载到结构化数据存储,再到API数据获取与Excel导出,提供了零基础到实战的完整学习路径。这些技能在日常开发、数据分析和自动化办公中极具实用价值。如果这篇教程对您有帮助,请点赞收藏支持,后续会带来更多Python实战技巧,敬请关注!

转载请说明出处内容投诉
CSS教程网 » Python数据采集与处理实战:从网络爬虫到Excel数据存储完整流程

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买