【Python网络爬虫笔记】10- os库存储爬取数据
- os库的作用
- 操作系统交互:os库提供了一种使用Python与操作系统进行交互的方式。使用os库来创建用于存储爬取数据的文件夹,或者获取当前工作目录的路径,以便将爬取的数据存储在合适的位置。
- 环境变量操作:可以读取和设置环境变量。在一些网络爬虫场景中,如果需要根据不同的环境(如开发环境和生产环境)来配置爬虫的行为,比如设置代理服务器地址等环境变量,os库就能发挥作用。
- 进程管理相关(部分功能):虽然不是os库的主要用途,但它也可以用于一些简单的进程相关操作,比如获取进程ID等。这在同时运行多个爬虫任务或者与其他程序协同工作时可能会用到。
- os库的常用方法
- os.getcwd()
- 功能:获取当前工作目录的路径。
- 示例:
import os current_dir = os.getcwd() print(current_dir)
- 用途:在网络爬虫中,当你要确定数据存储位置或者加载配置文件时,需要知道当前的工作路径。例如,你可以将爬取到的数据存储在当前工作目录下的一个特定文件夹中。
- os.mkdir()和os.makedirs()
- 功能:os.mkdir()用于创建单个新目录;os.makedirs()可以递归地创建目录,即可以创建多层嵌套的目录。
- 示例:
# 创建单个目录 import os new_dir = "data" os.mkdir(new_dir) # 创建多层目录 nested_dir = "data/subdata" os.makedirs(nested_dir)
- 用途:在网络爬虫中,用于创建存储爬取数据的文件夹。比如,你可以根据日期或者网站名称来创建不同的文件夹,将爬取的数据分类存储。
- os.path.join()
- 功能:将多个路径组合成一个完整的路径。
- 示例:
import os base_dir = "data" file_name = "result.txt" full_path = os.path.join(base_dir, file_name) print(full_path)
- 用途:在网络爬虫中,用于构建存储文件的完整路径。这样可以确保在不同操作系统下(因为不同操作系统的路径分隔符不同,如Windows是’\‘,Linux是’/')路径的正确性。
- os.listdir()
- 功能:返回指定目录下的所有文件和目录的名称列表。
- 示例:
import os dir_path = "." file_list = os.listdir(dir_path) print(file_list)
- 用途:在网络爬虫中,可以用于检查存储爬取数据的文件夹中的内容,或者获取某个目录下的所有网页文件列表,以便后续进行处理。
- os.getcwd()
- 典型案例
-
创建数据存储目录并保存爬取数据
- 案例描述:假设你要编写一个简单的网络爬虫来爬取网页内容,并将内容保存到本地文件中。首先,你需要创建一个合适的目录来存储数据,然后将爬取到的数据保存到该目录下的文件中。
- 代码示例:
import 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”文件中。
-
遍历目录下的所有网页文件进行处理
- 案例描述:假设你已经有一个存储了多个网页文件的目录,你想要遍历这个目录下的所有网页文件,读取文件内容并进行一些文本处理,比如提取其中的链接。
- 代码示例:
import 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年最新高清壁纸,并存储在本地文件夹。
- 代码示例:
-新建文件夹
-存储图片
-
原文地址:https://blog.csdn.net/zi__you/article/details/144416941
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!