当前位置:首页>python>Python爬虫技术实战:如何合规获取和风天气数据?

Python爬虫技术实战:如何合规获取和风天气数据?

  • 2026-09-08 16:57:11
Python爬虫技术实战:如何合规获取和风天气数据?

一、学前花絮

之前输出了几篇关于爬虫的文章,侧重于介绍python爬虫的技术实现。对于爬虫来说,我们一定要明确一个概念:不是所有网站都免费爬取信息!或者说,我们作为个人学习者,应该找那些没有法律风险的、免费使用的数据信息网站去练习。
本文以和风天气举例,详细介绍如何合规使用python爬取天气数据。

二、Python 爬取和风天气数据

2.1 网络爬虫的基础认知

1. 爬虫的定义

网络爬虫(Web Crawler)也被称为网络蜘蛛、网络机器人,是一种按照既定规则自动抓取互联网信息的程序 / 脚本。其核心原理是模拟浏览器向目标网站发送 HTTP/HTTPS 请求,获取网页 / 接口返回的数据后,进行解析、提取和存储,广泛应用于数据采集、搜索引擎索引、舆情分析等场景。

2. 爬虫的合规规则(Robots 协议)

Robots 协议(也叫 robots.txt)是网站通过文本文件告知爬虫哪些内容可抓取、哪些不可抓取的约定,本质是 “君子协定”,虽无强制法律约束力,但却是爬虫合规的基础准则。
示例:访问https://www.qweather.com/robots.txt可查看和风天气的 Robots 协议,确认其开放了 API 相关路径的抓取权限:
User-agent: *
Sitemap: https://www.qweather.com/sitemap_index.xml
Disallow: /terms/*
Disallow: /en/terms/*
Disallow: /about/*
Disallow: /en/about/*
以上就是和风天气robots.txt文件内容,解释如下:
关键结论(对爬虫开发的指导意义):
l允许抓取的范围:
除了/terms/、/about/及其英文版本路径外,网站其他公开路径均允许爬虫访问;
核心的API 接口(如/v7/weather/)不在禁止列表中,且和风天气开发者平台明确开放 API 调用权限,因此通过官方 API 采集天气数据完全符合 Robots 协议。
l禁止抓取的范围:
仅限制了 “用户协议”“关于我们” 等静态页面的抓取,这类页面本身无气象数据,对我们的天气爬虫无影响;
禁止抓取的目的是保护网站的静态合规文档,避免被恶意爬取 / 篡改。

3. 爬虫的法律风险

未经许可的爬虫行为可能触犯《网络安全法》《反不正当竞争法》等法律法规,核心风险点包括:
l抓取受版权保护的内容并商用;
l突破网站反爬措施、未经授权访问非公开数据;
l高频请求导致目标服务器瘫痪(涉嫌 “破坏计算机信息系统罪”);
l抓取个人信息(如用户手机号、身份证等),涉嫌侵犯公民个人信息权。

2.2 免费开源数据与合规采集

1.免费开源数据的定义

l免费开源数据指由平台 / 机构主动开放、允许非商用 / 商用使用的公开数据,通常以 API 接口、数据集下载等形式提供,这类数据的采集无需额外授权,是爬虫学习的最佳实践场景:
l特点:有明确的使用规范、接口文档,数据获取方式标准化,无法律风险;
l常见场景:气象数据、公共交通数据、政府公开数据等。

2.和风天气数据的合规性

和风天气(QWeather)是国内正规的气象数据服务平台,其提供的免费版 API完全符合合规采集要求:
l合法性:数据来源为官方气象机构,平台具备合法的数据分发资质;
l免费性:个人开发者版 API 提供每日一定额度的免费调用次数,满足学习 / 小型项目需求;
l无风险:通过平台注册后获取合法凭证调用 API,而非爬取非公开页面,完全规避法律风险。

2.3 和风天气平台注册与开发凭证获取

1. 注册流程(简要)

①访问和风天气开发者平台:https://dev.qweather.com/;
②完成账号注册(手机号 / 邮箱验证)并登录;
③进入 “控制台 - 项目管理”,点击 “创建项目”,选择 “个人版”(免费);
④项目创建后,在 “配置管理” 中开启 “天气 API” 权限(实时天气、7 天预报等)。

2.获取 4 个核心开发凭证

创建项目后,在项目详情页提取以下 4 个关键信息(爬虫开发必备):
补充:ED25519 私钥需手动下载(项目详情页→“认证配置”→“生成 / 下载私钥”),保存为ed25519-private.pem文件,与 Python 代码放在同一目录。

2.4 Python 爬取和风天气数据示例程序

1.环境准备

安装依赖库(执行终端命令):

pip install requests pyjwt cryptography

2.python示例代码

上面是模块导入和初始化参数,下面为业务逻辑:
爬取的天气信息存入json文件,内容截取如下:

3.代码说明

①核心流程:私钥加载 → JWT 令牌生成 → API 请求 → 数据解析 → 保存文件;
②关键修复点:
l移除lang参数,避免 400 参数错误(和风天气免费版默认返回简体中文);
l使用dict.get()替代直接取值,避免 KeyError,提升代码健壮性;
l严格遵循和风天气 JWT 认证规范,确保请求合法;
③使用注意事项:
l替换代码中 4 个核心凭证为自己的信息,否则无法运行;
l私钥文件需与代码放在同一目录,命名为ed25519-private.pem;
l免费版 API 有每日调用次数限制,避免高频请求。

2.5 以上内容的总结

1.爬虫开发的核心是 “合规”:优先遵循 Robots 协议,选择官方开放的 API 而非爬取非公开页面,可完全规避法律风险;
2.和风天气是学习爬虫的优质场景:免费、合规、文档完善,其 JWT 认证机制也是企业级 API 调用的典型实践;
3.代码设计需注重健壮性:处理参数错误、字段缺失等异常,确保程序稳定运行。
本示例仅用于学习目的,请勿将采集的数据用于商用,如需商用请联系和风天气开通商业版权限。

三、小结

对于python的爬虫技术,我们在学习的时候一定要注意合规性。所谓的合规,本质上是对知识产权及商业价值的保护,比如很多网站就是靠信息数据获取商业价值,那么人家肯定会对不劳而获的爬取信息予以谴责。也正因如此,为了个人学习的方便,也有很多可以供开发者免费使用的数据信息网站,比如本文提到的和风天气。

让我们保持学习热情,多做练习。我们下期再见!

最新文章

随机文章