在日常开发中,我们经常需要获取网页数据并进行本地保存。本文将介绍如何使用 Python 爬取天气页面数据,并将其保存为 HTML 文件,以便在本地浏览器中直接查看。

一、准备工作

我们需要用到的工具和资源如下:

  • Python 环境
  • Requests 库(用于发送 HTTP 请求)
  • 目标浏览器网页

二、实现步骤

步骤 1:安装 Requests 库

如果尚未安装 Requests 库,可以使用以下命令进行安装:

1.win+R=cmd回车
2.输入python检查版本
3.输入import requests检查环境import numpy
4.输入pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple配置下载环境
5.输入exit()返回

pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

步骤 2:编写爬虫代码

以下是爬取天气页面的 Python 代码,代码的主要功能是发送请求获取浏览器页面的 HTML 内容(我已浏览器MSN天气为例):

import requests

def getHTMLText(url):
    try:
        # 发送GET请求,设置超时时间为30秒
        r = requests.get(url, timeout=30)
        # 检查请求状态,如果不是200则引发HTTPError异常
        r.raise_for_status()
        # 设置编码方式为从内容中分析出的编码方式
        r.encoding = r.apparent_encoding
        # 返回获取到的HTML文本
        return r.text
    except:
        # 如果出现异常,返回"产生异常"
        return "产生异常"

if __name__ == "__main__":
    # 天气页面的URL
    url = "https://www.msn.cn/zh-cn/weather/forecast/in-%E5%86%85%E8%92%99%E5%8F%A4%E8%87%AA%E6%B2%BB%E5%8C%BA,%E5%8C%85%E5%A4%B4%E5%B8%82"
    # 获取网页内容
    html_content = getHTMLText(url)
    # 将内容写入txt文件
    with open("weather.txt", "w", encoding="utf-8") as f:
        f.write(html_content)
    print("天气页面已保存为weather.txt")

步骤 3:运行代码获取网页内容 

运行上述代码后,会在当前目录下生成代码,复制当中的代码,其中包含了目标浏览器页面的 HTML 内容。

步骤 4:将 txt 文件转换为 HTML 文件

在桌面上创建txt文件,将文件打开后将复制的代码粘贴,然后Ctrl+S保存,右键文件,选择 "重命名",将文件名修改为html(确保文件扩展名从.txt改为.html

PS:如果后缀没有文件扩展名,打开此电脑>>>查看,点击查看>>>显示>>>打开文件拓展名

 

步骤 5:在浏览器中打开 HTML 文件

双击html文件,它会在默认浏览器中打开,展示与原网页相同的信息。

三、代码解析

1、getHTMLText 函数:该函数接收一个 URL 参数,用于获取网页内容:

  • 使用requests.get发送 GET 请求
  • r.raise_for_status()用于检查请求是否成功
  • r.encoding = r.apparent_encoding确保中文显示正常

2、主程序部分: 

  • 指定要爬取的浏览器页面 URL
  • 调用getHTMLText函数获取网页内容
  • 将内容写入 txt 文件

四、注意事项 

1、爬取网页时需要遵守网站的 robots 协议,尊重网站的知识产权

2、部分网站可能有反爬机制,直接爬取可能会失败

3、保存的 HTML 文件可能会因为缺少 CSS 和 JavaScript 而导致显示效果与原网页有差异

4、若网页内容较大,保存和打开文件可能需要一定时间

    通过以上步骤,我们可以方便地将在线天气页面保存到本地,随时查看天气信息,无需再次联网。这种方法也适用于其他类型的网页保存。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐