一、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实战技巧,敬请关注!