当前位置:首页>python>Python连载04|常用第三方库实战:requests抓数据、pandas做分析

Python连载04|常用第三方库实战:requests抓数据、pandas做分析

  • 2026-09-08 07:05:48
Python连载04|常用第三方库实战:requests抓数据、pandas做分析

1pip:Python的"应用商店"

安装第三方库用 pip 命令,就像手机装 App 一样简单。

pip 常用命令

# 安装库pip install requests pandas openpyxl# 安装指定版本pip install requests==2.31.0# 升级库pip install --upgrade requests# 查看已安装的库pip list# 卸载库pip uninstall requests# 国内镜像加速(推荐)pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

💡 国内用户必看:默认 PyPI 源在国内很慢,用清华镜像加速:pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple

库名
用途
安装命令
requests
HTTP请求,抓网页/调API
pip install requests
json
JSON数据处理
内置,无需安装
os
文件/目录操作
内置,无需安装
pandas
数据分析处理
pip install pandas

2requests:用Python上网

requests 是 Python 最流行的 HTTP 库,几行代码就能抓取网页内容或调用 API 接口。

案例1:GET请求——获取公开API数据

import requests# 调用免费API:获取随机笑话response = requests.get("https://httpbin.org/json")# 查看状态码print(response.status_code)  # 200 表示成功# 获取返回的JSON数据data = response.json()print(data)

案例2:带参数的GET请求

import requests# 模拟查询参数:?city=北京&days=3params = {    "city": "北京",    "days": 3}response = requests.get(    "https://httpbin.org/get",    params=params)print(response.url)  # https://httpbin.org/get?city=北京&days=3print(response.json()["args"])  # {'city': '北京', 'days': '3'}

案例3:POST请求——提交表单数据

import requests# 模拟登录提交data = {    "username": "ama",    "password": "123456"}response = requests.post("https://httpbin.org/post", data=data)result = response.json()print(result["form"])  # {'username': 'ama', 'password': '123456'}

💡 requests 常用技巧:① response.text 获取网页HTML文本;② response.json() 自动解析JSON;③ 加 headers={"User-Agent": "..."} 模拟浏览器,避免被反爬;④ timeout=5 设置超时,防止卡死。

3json:数据交换的"普通话"

JSON 是互联网最通用的数据格式,几乎所有 API 都用 JSON 返回数据。Python 内置了 json 模块来处理它。

案例:JSON 与 Python 字典互转

import json# Python字典 → JSON字符串student = {    "name": "小明",    "age": 3,    "courses": ["Python", "AI"],    "graduated": False}json_str = json.dumps(student, ensure_ascii=False, indent=2)print(json_str)
{  "name": "小明",  "age": 3,  "courses": ["Python", "AI"],  "graduated": false}
# JSON字符串 → Python字典parsed = json.loads(json_str)print(parsed["name"])      #小明 print(parsed["courses"])    # ['Python', 'AI']print(type(parsed))       # <class 'dict'># 读写JSON文件with open("data.json", "w", encoding="utf-8") as f:    json.dump(student, f, ensure_ascii=False, indent=2)with open("data.json", "r", encoding="utf-8") as f:    loaded = json.load(f)

💡 ensure_ascii=False:处理中文时一定要加这个参数,否则中文会变成 \u963f\u739b 这样的乱码。

4os:文件系统操作

os 模块让你用代码操作文件和文件夹——批量重命名、遍历目录、自动整理文件。

案例1:文件与目录操作

import os# 获取当前工作目录print(os.getcwd())# 创建目录os.makedirs("output/screenshots", exist_ok=True)# 列出目录下所有文件files = os.listdir(".")print(files)# 判断文件/目录是否存在print(os.path.exists("data.json"))    # True/Falseprint(os.path.isfile("data.json"))    # Trueprint(os.path.isdir("output"))        # True# 获取文件大小(字节)size = os.path.getsize("data.json")print(f"文件大小:{size} 字节")# 拼接路径(跨平台安全)path = os.path.join("output", "screenshots", "img.png")print(path)  # output\screenshots\img.png (Windows)

案例2:批量重命名文件

import os# 把目录下所有 .txt 文件加前缀 "backup_"folder = "./notes"for filename in os.listdir(folder):    if filename.endswith(".txt"):        old_path = os.path.join(folder, filename)        new_path = os.path.join(folder, f"backup_{filename}")        os.rename(old_path, new_path)        print(f"重命名:{filename} → backup_{filename}")

5pandas:数据分析利器

pandas 是 Python 数据分析的核武器。它把数据当成"Excel表格"来操作,筛选、排序、统计、分组,几行代码搞定。

案例1:创建DataFrame(数据表)

import pandas as pd# 从字典创建数据表data = {    "姓名": ["张三", "李四", "王五", "赵六"],    "语文": [85, 92, 78, 90],    "数学": [90, 88, 95, 72],    "英语": [78, 85, 82, 88]}df = pd.DataFrame(data)print(df)
   姓名  语文  数学  英语0  张三  85  90  781  李四  92  88  852  王五  78  95  823  赵六  90  72  88

案例2:数据筛选与统计

# 添加总分和平均分列df["总分"] = df[["语文", "数学", "英语"]].sum(axis=1)df["平均分"] = df[["语文", "数学", "英语"]].mean(axis=1).round(1)print(df[["姓名", "总分", "平均分"]])
   姓名  总分  平均分0  张三  253  84.31  李四  265  88.32  王五  255  85.03  赵六  250  83.3
# 筛选:数学大于80分的同学math_good = df[df["数学"] > 80]print(math_good[["姓名", "数学"]])
   姓名  数学0  张三  901  李四  882  王五  95
# 按总分降序排序ranked = df.sort_values("总分", ascending=False)print(ranked[["姓名", "总分"]])
   姓名  总分1  李四  2652  王五  2550  张三  2533  赵六  250
# 统计每科平均分print(df[["语文", "数学", "英语"]].mean())
语文    86.25数学    86.25英语    83.25dtype: float64

案例3:读写Excel/CSV文件

# 保存为CSV文件df.to_csv("成绩表.csv", index=False, encoding="utf-8-sig")# 保存为Excel文件(需要 openpyxl 库)df.to_excel("成绩表.xlsx", index=False, sheet_name="期中考试")# 读取CSV文件df2 = pd.read_csv("成绩表.csv")# 读取Excel文件df3 = pd.read_excel("成绩表.xlsx", sheet_name="期中考试")

💡 pandas 核心概念:① DataFrame = 二维表格(有行有列);② Series = 一列数据;③ df["列名"] 取列;④ df.iloc[0] 按位置取行;⑤ df[df["列"] > 值] 条件筛选。

6综合实战:获取天气数据并分析

把 requests + json + pandas 串起来,做一个完整的"获取数据→解析→分析"流程。

案例:多城市天气数据分析

import requestsimport jsonimport pandas as pd# 1. 模拟从API获取多个城市的天气数据# (实际开发中替换为真实天气API)weather_data = [    {"city": "北京", "temp": 32, "humidity": 45, "aqi": 85},    {"city": "上海", "temp": 29, "humidity": 72, "aqi": 55},    {"city": "广州", "temp": 35, "humidity": 80, "aqi": 42},    {"city": "成都", "temp": 28, "humidity": 68, "aqi": 60},    {"city": "哈尔滨", "temp": 22, "humidity": 50, "aqi": 38},]# 2. 保存为JSON文件with open("weather.json", "w", encoding="utf-8") as f:    json.dump(weather_data, f, ensure_ascii=False, indent=2)# 3. 用pandas加载并分析df = pd.DataFrame(weather_data)# 最热的城市hottest = df.loc[df["temp"].idxmax()]print(f"🔥 最热城市:{hottest['city']},{hottest['temp']}°C")# 空气最好的城市best_air = df.loc[df["aqi"].idxmin()]print(f"🌿 空气最好:{best_air['city']},AQI {best_air['aqi']}")# 平均温度和湿度print(f"📊 平均温度:{df['temp'].mean():.1f}°C")print(f"📊 平均湿度:{df['humidity'].mean():.1f}%")# 筛选:温度>30且AQI<60的城市comfortable = df[(df["temp"] > 30) & (df["aqi"] < 60)]print(f"\n温度>30且空气好的城市:")print(comfortable[["city", "temp", "aqi"]])# 4. 导出分析结果到Exceldf.to_excel("天气分析.xlsx", index=False)
运行结果:

🔥 最热城市:广州,35°C🌿 空气最好:哈尔滨,AQI 38📊 平均温度:29.2°C📊 平均湿度:63.0%温度>30且空气好的城市:city temp aqi2 广州 35 42

💡 这个案例完整展示了:① 用 json 存储数据;② 用 pandas 创建 DataFrame;③ idxmax/idxmin 找极值;④ 多条件筛选 df[(条件1) & (条件2)];⑤ to_excel 导出结果。这就是数据分析的基本流程。

本篇小结

库
核心功能
一句话记忆
pip
安装/管理第三方库
Python的"应用商店"
requests
HTTP请求
用Python上网
json
JSON数据处理
字典↔字符串互转
os
文件系统操作
用代码管文件
pandas
数据分析
Python版Excel

最后一篇我们将把这些库全部串起来,做三个完整项目:网页爬虫、Excel自动化、数据分析可视化。真正把学到的知识变成"作品"。

Python · requests · pandas · 连载第4篇

觉得有用?收藏起来慢慢看,转发给想学编程的朋友吧 👍

最新文章

随机文章