【Python网络爬虫笔记】10- os库存储爬取数据

  1. os库的作用
    • 操作系统交互:os库提供了一种使用Python与操作系统进行交互的方式。使用os库来创建用于存储爬取数据的文件夹,或者获取当前工作目录的路径,以便将爬取的数据存储在合适的位置。
    • 环境变量操作:可以读取和设置环境变量。在一些网络爬虫场景中,如果需要根据不同的环境(如开发环境和生产环境)来配置爬虫的行为,比如设置代理服务器地址等环境变量,os库就能发挥作用。
    • 进程管理相关(部分功能):虽然不是os库的主要用途,但它也可以用于一些简单的进程相关操作,比如获取进程ID等。这在同时运行多个爬虫任务或者与其他程序协同工作时可能会用到。
  2. os库的常用方法
    • os.getcwd()
      • 功能:获取当前工作目录的路径。

      • 示例

        python 复制代码
        import 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()
      • 功能:将多个路径组合成一个完整的路径。

      • 示例

        python 复制代码
        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()
      • 功能:返回指定目录下的所有文件和目录的名称列表。

      • 示例

        python 复制代码
        import os
        dir_path = "."
        file_list = os.listdir(dir_path)
        print(file_list)
      • 用途:在网络爬虫中,可以用于检查存储爬取数据的文件夹中的内容,或者获取某个目录下的所有网页文件列表,以便后续进行处理。

  3. 典型案例
    • 创建数据存储目录并保存爬取数据

      • 案例描述:假设你要编写一个简单的网络爬虫来爬取网页内容,并将内容保存到本地文件中。首先,你需要创建一个合适的目录来存储数据,然后将爬取到的数据保存到该目录下的文件中。

      • 代码示例

        python 复制代码
        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"文件中。
    • 遍历目录下的所有网页文件进行处理

      • 案例描述:假设你已经有一个存储了多个网页文件的目录,你想要遍历这个目录下的所有网页文件,读取文件内容并进行一些文本处理,比如提取其中的链接。

      • 代码示例

        python 复制代码
        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年最新高清壁纸,并存储在本地文件夹。
      • 代码示例
        -新建文件夹

        -存储图片
相关推荐
rabbit_pro3 分钟前
Java 文件上传到服务器本地存储
java·服务器·python
serve the people22 分钟前
PQ+IVF组合解决海量向量内存占用高和检索慢的问题
人工智能·python
on_pluto_23 分钟前
【debug】解决 5070ti 与 pytorch 版本不兼容的问题
人工智能·pytorch·python
嫂子的姐夫24 分钟前
02-多线程
爬虫·python·多线程·并发爬虫·基础爬虫
TL滕40 分钟前
从0开始学算法——第四天(练点题吧)
数据结构·笔记·学习·算法
【建模先锋】1 小时前
基于Python的智能故障诊断系统 | SmartDiag AI (基础版)V1.0 正式发布!
开发语言·人工智能·python·故障诊断·智能分析平台·大数据分析平台·智能故障诊断系统
AIsdhuang1 小时前
2025 年企业 AI 培训精选指南:聚焦企业培训场景
人工智能·python
今天没有盐1 小时前
Python 数据分析实战:多场景数据处理与可视化全解析
python·pycharm·编程语言
程序员三藏1 小时前
如何用Postman做接口自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
n***27192 小时前
JAVA (Springboot) i18n国际化语言配置
java·spring boot·python