Python 爬取网页并存储至本地

本文介绍如何使用Python进行网页爬取并将内容保存到本地。通过具体示例,演示了使用urllib.request模块从网易新浪获取网页源代码,并采用适当命名规则存储至本地的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 爬取网页并存储至本地

使用Python爬取网页,并将该网页存储至本地目录。

注:本文爬取的是网易新浪的一个网页。

代码如下:

import urllib.request 

def getHTML(url):  
     html = urllib.request.urlopen(url).read()   
     return html
  
def saveHTML(file_name, file_content):  
     # 注意windows文件命名的禁用符,比如 /   
     with open(file_name.replace('/', '_') + ".html", "wb") as f:  
            # 写文件用bytes而不是str,所以要转码   
            f.write(file_content) 


aurl = "https://mil.news.sina.com.cn/2019-06-27/doc-ihytcerk9733591.shtml"

html = getHTML(aurl)
print("网页已爬取")

saveHTML("sina", html)
print("网页已存储至本地")

目标网页如下:爬取的网页

网页爬取结果如下:(在VSCode下打开)VSCode中打开爬取的网页(本地存储)

### 使用Python实现网页数据抓取与存储 #### 方法概述 使用 Python 进行网页数据抓取通常依赖于 `requests` 库来获取网页内容,以及 `BeautifulSoup` 或其他类似的库来进行 HTML 解析。随后,可以通过标准库如 `csv` 将提取的数据保存至文件中。 #### 安装必要的库 为了顺利运行代码,需先安装所需的第三方库。可使用以下命令完成安装: ```bash pip install requests beautifulsoup4 pandas ``` #### 数据抓取过程详解 在实际操作过程中,需要遵循一系列步骤以确保数据能够被成功抓取处理: 1. **发送 HTTP 请求** 利用 `requests.get()` 函数向目标 URL 发起 GET 请求,从而获得该页面的内容[^2]。 2. **解析 HTML 文档** 借助 `BeautifulSoup` 对返回的 HTML 内容进行解析,以便定位特定的目标数据位置[^3]。 3. **提取所需信息** 配合 CSS 选择器或者标签名称筛选出感兴趣的部分,将其转换成易于管理的形式。 4. **保存结果到本地文件** 可选用 CSV 格式作为最终输出形式之一,便于后续导入 Excel 表格软件或者其他分析工具当中[^4]。 #### 示例代码展示 以下是完整的示例程序,演示了上述提到的功能实现方式: ```python import requests from bs4 import BeautifulSoup import csv # 设置请求头模拟真实浏览器行为 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' } url = "http://example.com" response = requests.get(url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') # 查找所有符合条件的文章标题 titles = [] for title_tag in soup.find_all('h2', class_='post-title'): titles.append(title_tag.get_text(strip=True)) # 创建CSV文件将数据写入其中 with open('output.csv', mode='w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerow(['Title']) # 写表头 for t in titles: writer.writerow([t]) else: print(f"Failed to retrieve data: {response.status_code}") ``` 此脚本首先定义了一个自定义 User-Agent 字符串以防某些站点屏蔽自动化访问;接着调用了 Requests 的 get() 方法加载指定地址下的资源;之后创建了一个新的 Beautiful Soup 对象用来遍历 DOM 结构寻找匹配条件的所有 h2 元素节点内的文字内容;最后把收集好的列表项逐一记录到了名为 output.csv 的新文档里^。 #### 注意事项 尽管本文提供了基本的操作指南,但在实践中还需要注意遵守各网站的服务条款,尊重其 robots.txt 文件设定限制区域范围之外的信息采集活动。此外也要考虑频率控制以免给服务器带来过大负担造成不必要的麻烦.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉闫小亘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值