使用 Python 爬取浏览器页面并生成 HTML 文件
本文介绍了使用Python爬取天气网页数据并本地保存的方法。通过Requests库发送HTTP请求获取网页HTML内容,将数据保存为txt文件后转换为HTML格式,可直接在浏览器中查看。文章详细说明了安装环境、编写爬虫代码、文件转换等步骤,并解析了核心函数实现原理。同时提醒注意遵守robots协议、应对反爬机制,以及可能存在的样式显示差异问题。该方法适用于将各类网页离线保存,便于随时查看而无需联网
在日常开发中,我们经常需要获取网页数据并进行本地保存。本文将介绍如何使用 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、若网页内容较大,保存和打开文件可能需要一定时间
通过以上步骤,我们可以方便地将在线天气页面保存到本地,随时查看天气信息,无需再次联网。这种方法也适用于其他类型的网页保存。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)