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

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

      • 案例描述:假设你要编写一个简单的网络爬虫来爬取网页内容,并将内容保存到本地文件中。首先,你需要创建一个合适的目录来存储数据,然后将爬取到的数据保存到该目录下的文件中。
      • 代码示例
        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 osdir_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年最新高清壁纸,并存储在本地文件夹。
      • 代码示例
        -新建文件夹
        在这里插入图片描述
        -存储图片
        在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序从后端获取的图片,展示的时候上下没有完全拼接,有缝隙【已解决】

文章目录 1、index.wxml2、index.js3、detail.detail为什么 .rich-text-style 样式可以生效&#xff1f;1. <rich-text> 组件的特殊性2. 类选择器的作用范围3. 样式优先级4. line-height: 0 的作用5. 为什么直接使用 rich-text 选择器无效&#xff1f; 总结 上下两张图片…

Linux-apache虚拟主机配置笔记

一、 安装apache 有需要的话&#xff0c;可以去查看具体的apache的安装apache安装https://blog.csdn.net/m0_68472908/article/details/139348739?spm1001.2014.3001.5501 都可以使用本地yum源搭建本地yum源搭建https://blog.csdn.net/m0_68472908/article/details/14385692…

xshell连接虚拟机,更换网络模式:NAT->桥接模式

NAT模式&#xff1a;虚拟机通过宿主机的网络访问外网。优点在于不需要手动配置IP地址和子网掩码&#xff0c;只要宿主机能够访问网络&#xff0c;虚拟机也能够访问。对外部网络而言&#xff0c;它看到的是宿主机的IP地址&#xff0c;而不是虚拟机的IP。但是&#xff0c;宿主机可…

SpringBoot使用Nacos进行application.yml配置管理

Nacos是阿里巴巴开源的一个微服务配置管理和服务发现的解决方案。它提供了动态服务发现、配置管理和 服务管理平台。Nacos的核心功能包括服务发现、配置管理和动态服务管理&#xff0c;使得微服务架构下的服务治理 变得简单高效。 Nacos的设计基于服务注册与发现、配置管理、动…

STM32F103单片机HAL库串口通信卡死问题解决方法

在上篇文章 STM32F103单片机使用STM32CubeMX创建IAR串口工程 中分享了使用cubeMX直接生成串口代码的方法&#xff0c;在测试的过程中无意间发现&#xff0c;串口会出现卡死的问题。 当串口一次性发送十几个数据的时候&#xff0c;串口感觉像卡死了一样&#xff0c;不再接收数据…

selenium自动爬虫工具

一、介绍selenium爬虫工具 selenium 是一个自动化测试工具&#xff0c;可以用来进行 web 自动化测试、爬虫 selenium 本质是通过驱动浏览器&#xff0c;完全模拟浏览器的操作&#xff0c;比如跳转、输入、点击、下拉等&#xff0c;来拿到网页渲染之后的结果&#xff0c;可支持…

Unity开发数字孪生项目

前言&#xff1a;记录下自己用Unity开发数字孪生项目&#xff0c;所用到的知识点、功能点以及对项目认知总结&#xff0c;当然还有开发过程中所遇到的坑。此篇博客也是会随时进行更新。 &#x1f60a;屏幕前看到此片文章的开发者们在此类项目开发过程中少走些弯路&#xff0c;希…

node利用路由搭建web实例

npm init npm i express body-parser cookie-parser 封装web实例 搭建路由 导出web 应用实例注册

硬件设计 | Altium Designer软件PCB规则设置

基于Altium Designer&#xff08;24.9.1&#xff09;版本 嘉立创PCB工艺加工能力范围说明-嘉立创PCB打样专业工厂-线路板打样 规则参考-嘉立创 注意事项 1.每次设置完规则参数都要点击应用保存 2.每次创建PCB&#xff0c;都要设置好参数 3.可以设置默认规则&#xff0c;将…

WebDAV服务不能上传大文件,文件超过50M报错[0x800700DF]怎么办?

这个问题需要分别从服务端和客户端解决。 1.Windows客户端 解除50M文件限制&#xff0c;Windows访问Webdav服务时&#xff0c;大于50M文件提示错误[错误:0x800700DF] 部署了webdav&#xff0c;Windows10映射网络磁盘&#xff0c;传输文件超过大约50MB的文件会弹出“0x800700…

安全基础学习-keil调试汇编代码

初始目的是为了通过汇编编写CRC功能。 但是基础为0&#xff0c;所以目前从搭建工程开始记录。 大佬绕路。 &#xff08;一&#xff09;创建项目 1. 新建项目 打开 Keil uVision。选择 Project -> New uVision Project 创建一个新项目。选择你的目标设备&#xff08;如 AR…

安装qt 5.15.2笔记

撰文是2024年12月 最终实现了 1、用梯子下载了离线包5.14.2&#xff0c;最后没用 2、用内地镜像在线安装5.15.2&#xff0c;3分钟装完 正文开始&#xff0c;qt官方简称官方。 官方包官方自5.15.X起&#xff0c;不再提供的exe/run安装包https://download.qt.io/archive/qt/ …

Redis Java 集成到 Spring Boot

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;Redis &#x1f4da;本系列文章为个人学习笔…

麒麟信安推出支持信创PC的新一代云桌面方案,助力政务信创高效安全运维

12月11日&#xff0c;在第二届国家新一代自主安全计算系统产业集群融通生态大会上&#xff0c;麒麟信安发布了支持信创PC的新一代云桌面方案&#xff0c;该方案是基于国际TCI架构实现国产PC机云化纳管在国内的首次发布&#xff0c;并与银河麒麟桌面操作系统、长城国产PC整机实现…

网络原理04

可靠传输&#xff0c;是TCP最核心的特性 可靠传输不是说数据100%传输给接收方了 1&#xff09;发送方发出数据后&#xff0c;能过知道接收方是否收到数据 2&#xff09;一旦发现对方没收到&#xff0c;可以通过一定的方法”补救” 1. 确认应答 发送方&#xff0c;把数据已…

微信小程序5-图片实现点击动作和动态加载同类数据

搜索 微信小程序 “动物觅踪” 观看效果 感谢阅读&#xff0c;初学小白&#xff0c;有错指正。 一、功能描述 a. 原本想通过按钮加载背景图片&#xff0c;来实现一个可以点击的搜索button&#xff0c;但是遇到两个难点&#xff0c;一是按钮大小调整不方便&#xff08;网上搜索…

“切片赋值”创建列表批量操作“新”方法(Python)

[start:end]切片赋值&#xff0c;扩展了list批量增减元素的操作能力。 (笔记模板由python脚本于2024年12月06日 15:07:56创建&#xff0c;本篇笔记适合研python基础的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;…

Unraid实现相册同步与展示的方案探讨

背景&#xff1a;Unraid作为一个NAS系统&#xff0c;能够实现基本的NAS文件管理功能&#xff0c;但是不提供额外的功能如影音、同步、办公、和内网穿透等&#xff0c;这些在其他的NAS产品如群晖、绿联、威联通等都是提供支持的。然而unraid也有其他方案&#xff0c;即通过特别方…

常见的网络攻击手段

IP 欺骗 IP 是什么? 在网络中&#xff0c;所有的设备都会分配一个地址。这个地址就仿佛小蓝的家地址「多少号多少室」&#xff0c;这个号就是分配给整个子网的&#xff0c;「室」对应的号码即分配给子网中计算机的&#xff0c;这就是网络中的地址。「号」对应的号码为网络号…

印闪网络:阿里云数据库MongoDB版助力金融科技出海企业降本增效

客户背景 上海印闪网络科技有限公司&#xff0c;于2017年1月成立&#xff0c;投资方包括红杉资本等多家国际知名风投公司。公司业务聚焦东南亚普惠金融&#xff0c;常年稳居行业头部。创始团队来自腾讯&#xff0c;中国团队主要由运营、风控及产研人员组成&#xff0c;核心成员…