- os库的作用
- 操作系统交互:os库提供了一种使用Python与操作系统进行交互的方式。使用os库来创建用于存储爬取数据的文件夹,或者获取当前工作目录的路径,以便将爬取的数据存储在合适的位置。
- 环境变量操作:可以读取和设置环境变量。在一些网络爬虫场景中,如果需要根据不同的环境(如开发环境和生产环境)来配置爬虫的行为,比如设置代理服务器地址等环境变量,os库就能发挥作用。
- 进程管理相关(部分功能):虽然不是os库的主要用途,但它也可以用于一些简单的进程相关操作,比如获取进程ID等。这在同时运行多个爬虫任务或者与其他程序协同工作时可能会用到。
- os库的常用方法
- os.getcwd()
-
功能:获取当前工作目录的路径。
-
示例 :
pythonimport os current_dir = os.getcwd() print(current_dir) -
用途:在网络爬虫中,当你要确定数据存储位置或者加载配置文件时,需要知道当前的工作路径。例如,你可以将爬取到的数据存储在当前工作目录下的一个特定文件夹中。
-
- os.mkdir()和os.makedirs()
-
功能:os.mkdir()用于创建单个新目录;os.makedirs()可以递归地创建目录,即可以创建多层嵌套的目录。
-
示例 :
python# 创建单个目录 import os new_dir = "data" os.mkdir(new_dir) # 创建多层目录 nested_dir = "data/subdata" os.makedirs(nested_dir) -
用途:在网络爬虫中,用于创建存储爬取数据的文件夹。比如,你可以根据日期或者网站名称来创建不同的文件夹,将爬取的数据分类存储。
-
- os.path.join()
-
功能:将多个路径组合成一个完整的路径。
-
示例 :
pythonimport os base_dir = "data" file_name = "result.txt" full_path = os.path.join(base_dir, file_name) print(full_path) -
用途:在网络爬虫中,用于构建存储文件的完整路径。这样可以确保在不同操作系统下(因为不同操作系统的路径分隔符不同,如Windows是'\',Linux是'/')路径的正确性。
-
- os.listdir()
-
功能:返回指定目录下的所有文件和目录的名称列表。
-
示例 :
pythonimport os dir_path = "." file_list = os.listdir(dir_path) print(file_list) -
用途:在网络爬虫中,可以用于检查存储爬取数据的文件夹中的内容,或者获取某个目录下的所有网页文件列表,以便后续进行处理。
-
- os.getcwd()
- 典型案例
-
创建数据存储目录并保存爬取数据
-
案例描述:假设你要编写一个简单的网络爬虫来爬取网页内容,并将内容保存到本地文件中。首先,你需要创建一个合适的目录来存储数据,然后将爬取到的数据保存到该目录下的文件中。
-
代码示例 :
pythonimport os import requests # 创建存储数据的目录 data_dir = "web_data" try: os.makedirs(data_dir) except FileExistsError: print("目录已存在") # 爬取网页内容并保存 url = "https://www.example.com" response = requests.get(url) file_path = os.path.join(data_dir, "example.html") with open(file_path, "w", encoding="utf - 8") as f: f.write(response.text) -
解释 :
- 首先使用os.makedirs()尝试创建一个名为"web_data"的目录来存储爬取的数据。如果目录已经存在,会捕获FileExistsError异常并打印提示信息。
- 然后使用requests库(这里假设已经安装)爬取指定网页(这里是"https://www.example.com")的内容。
- 通过os.path.join()构建保存文件的完整路径,将爬取的内容保存到"web_data"目录下的"example.html"文件中。
-
-
遍历目录下的所有网页文件进行处理
-
案例描述:假设你已经有一个存储了多个网页文件的目录,你想要遍历这个目录下的所有网页文件,读取文件内容并进行一些文本处理,比如提取其中的链接。
-
代码示例 :
pythonimport os dir_path = "web_pages" for file_name in os.listdir(dir_path): file_path = os.path.join(dir_path, file_name) if os.path.isfile(file_path): with open(file_path, "r", encoding="utf - 8") as f: content = f.read() # 在这里可以添加对内容提取链接等文本处理的代码 print("正在处理文件:", file_path) -
解释 :
- 首先指定要遍历的目录"web_pages"。
- 使用os.listdir()获取目录下所有文件和目录的名称列表,然后通过循环遍历这些名称。
- 对于每个名称,使用os.path.join()构建完整的文件路径,并通过os.path.isfile()判断是否为文件(而不是目录)。
- 如果是文件,就打开文件读取内容,在这里可以添加具体的文本处理代码,如使用正则表达式提取链接等,同时打印出正在处理的文件路径。
-
-
案例9:【Python网络爬虫笔记】9- 抓取优美图库2024年最新高清壁纸
-
链接:【Python网络爬虫笔记】9- 抓取优美图库2024年最新高清壁纸
- 案例描述:抓取优美图库2024年最新高清壁纸,并存储在本地文件夹。
- 代码示例 :
-新建文件夹

-存储图片

-
【Python网络爬虫笔记】10- os库存储爬取数据
zi__you2024-12-15 23:21
相关推荐
Xudde.19 小时前
CVE-2017-9993漏洞复现FakeOccupational19 小时前
【电路笔记 STM32】Cortex-M7 UART 中断模式(串口接收中断+串口空闲中断)小李不想当小白20 小时前
USART串口协议(STM32标准库学习笔记)砚底藏山河20 小时前
python量化入门:多周期数据对齐统一时间轴毕业设计70321 小时前
(免费领源码)django空气净化器销售系统09218- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)AOI小白新手上路21 小时前
视频去雨·论文蒸馏笔记:从物理先验到状态空间模型小小张说故事21 小时前
Python 闭包到底捕获了啥?一个计数器例子讲透,别再背定义了深蓝AI21 小时前
AI Agent 点了发布却超时:一条回执丢失,为什么能造成两篇文章?zzp2821821 小时前
Estyapp逆向分析怪奇云呼军21 小时前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?