【愚公系列】《Python網絡爬蟲從入門到精通》037-文件的存取

標題詳情
作者簡介愚公搬代碼
頭銜華為云特約編輯,華為云云享專家,華為開發者專家,華為產品云測專家,CSDN博客專家,CSDN商業化專家,阿里云專家博主,阿里云簽約作者,騰訊云優秀博主,騰訊云內容共創官,掘金優秀博主,亞馬遜技領云博主,51CTO博客專家等。
近期榮譽2022年度博客之星TOP2,2023年度博客之星TOP2,2022年華為云十佳博主,2023年華為云十佳博主,2024年華為云十佳博主等。
博客內容.NET、Java、Python、Go、Node、前端、IOS、Android、鴻蒙、Linux、物聯網、網絡安全、大數據、人工智能、U3D游戲、小程序等相關領域知識。
歡迎??點贊、?評論、?收藏

文章目錄

  • ??前言
  • ??一、文件的存取
    • ??1.?? Python文件操作詳解:TXT文件存儲與讀取
      • ??1.1 文件存儲基礎
        • ??1.1.1 open()函數核心參數
        • ??1.1.2 文件模式詳解
      • ??1.2 實戰存儲示例
      • ??1.3 文件讀取技術
        • ??1.3.1 讀取指定字符
        • ??1.3.2 指針定位讀取
        • ??1.3.3 逐行讀取
        • ??1.3.4 批量讀取所有行
      • ??1.4 關鍵注意事項
      • ??1.5 性能對比測試
      • ??1.6 擴展應用:CSV交互
    • ??2.?? Pandas數據存儲指南:CSV與Excel文件操作詳解
      • ??2.1 CSV文件存儲技術
        • ??2.1.1 核心方法:`DataFrame.to_csv()`
        • ??2.1.2 參數速查表
        • ??2.1.3 實戰示例
        • ??2.1.4 文件輸出對比
      • ??2.2 Excel文件存儲技術
        • ??2.2.1 核心方法:`DataFrame.to_excel()`
        • ??2.2.2 參數速查表
        • ??2.2.3 實戰示例
        • ??2.2.4 Excel文件輸出效果
      • ??2.3 格式控制技巧
        • ??2.3.1 浮點數精度控制
        • ??2.3.2 中文編碼處理
        • ??2.3.3 多工作表操作
      • ??2.4 常見問題解決方案
      • ??2.5 格式對比與選擇建議


??前言

在網絡爬蟲的開發過程中,數據的存取是一個至關重要的環節。無論是從網頁抓取來的文本、圖片,還是其他格式的數據,如何高效、準確地存儲和讀取這些信息,直接關系到爬蟲的性能和后續數據分析的效果。在《Python網絡爬蟲從入門到精通》的第037篇文章中,我們將深入探討文件的存取方法,幫助你在爬蟲項目中靈活運用這些技巧。

本篇文章將涵蓋文件的基本讀寫操作,包括如何使用Python的內置函數以及流行的第三方庫來處理各類文件格式,如文本文件、CSV文件和JSON文件等。通過具體的實例,我們將演示如何將抓取的數據有效地保存到文件中,以及如何從文件中讀取數據進行進一步處理。這些技能不僅能提升你在爬蟲項目中的開發效率,還能幫助你更好地管理和利用數據。

??一、文件的存取

??1.?? Python文件操作詳解:TXT文件存儲與讀取

??1.1 文件存儲基礎

??1.1.1 open()函數核心參數
file = open(filename, mode='r', buffering=-1)
參數說明常用值
filename文件路徑(相對/絕對)“data.txt”
mode文件訪問模式r/w/a/r+/rb等
buffering緩沖策略(0=無緩沖,1=行緩沖,>1=緩沖區大小)默認系統緩沖設置
??1.1.2 文件模式詳解
模式說明適用場景
r只讀模式(默認)讀取現有文件
w寫入模式(覆蓋原有內容)創建新文件/清空重寫
a追加模式(在文件末尾添加)日志文件記錄
r+讀寫模式(指針在開頭)需要同時讀寫操作
rb二進制只讀處理非文本文件
wb二進制寫入保存圖片/視頻

??1.2 實戰存儲示例

import requests     # 導入網絡請求模塊
from bs4 import BeautifulSoup  # html解析庫url = 'http://quotes.toscrape.com/tag/inspirational/'   # 定義請求地址
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
response = requests.get(url,headers)   # 發送網絡請求
if response.status_code==200:   # 如果請求成功#創建一個BeautifulSoup對象,獲取頁面正文soup = BeautifulSoup(response.text, features="lxml")text_all = soup.find_all('span',class_='text')   # 獲取所有顯示勵志名句的span標簽txt_file = open('data.txt','w',encoding='utf-8') # 創建open對象for i,value in enumerate(text_all):              # 循環遍歷爬取內容txt_file.write(str(i)+value.text+'\n')       # 寫入每條爬取的勵志名句并在結尾換行txt_file.close()                                 # 關閉文件操作

輸出文件示例:
在這里插入圖片描述

??1.3 文件讀取技術

??1.3.1 讀取指定字符
with open('message.txt', 'r', encoding='utf-8') as f:content = f.read(9)  # 讀取前9個字符
print(cont

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896775.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896775.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896775.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++:vector的push_back時間復雜度分析

引導示例 #include <iostream> #include <vector>int main() {std::vector<int> v;std::cout << v.capacity() << " ";int last 0;for (int i 1; i < 10; i) {v.push_back(1);std::cout << v.capacity() << " …

LeetCode 202. 快樂數 java題解

https://leetcode.cn/problems/happy-number/description/ 哈希表 class Solution {public boolean isHappy(int n) {if(n1) return true;HashSet<Integer> setnew HashSet<>();while(n!1&&!(set.contains(n))){//沒找到結果&#xff1b;沒有重復出現過se…

11.24 SpringMVC(1)@RequestMapping、@RestController、@RequestParam

一.RequestMapping("/user")//HTTP 請求方法既支持get也支持post&#xff0c;可表示為類路徑與方法路徑 二.RequestMapping(value "/m7", method {RequestMethod.POST, RequestMethod.GET}) value這個參數指定了請求的 URL 路徑。method 參數指定了允許…

解決npm run dev報錯

解決&#xff1a;Node.js 版本更新后與 OpenSSL 不兼容導致的npm報錯“Error: error:0308010C:digital envelope routines::unsupported” 方法一&#xff1a;更改系統環境變量方法二&#xff1a;更改項目環境變量方法三&#xff1a;更換 Node.js 版本方法四&#xff1a;升級依…

Django模型管理器/QuerySet 常見的方法

模型管理器/QuerySet 常見的方法 get([**kwargs]) 方法 用途&#xff1a;獲取滿足條件的唯一對象。參數&#xff1a;關鍵字參數&#xff0c;指定查詢條件。返回值&#xff1a;模型對象。異常&#xff1a;如果找到多個對象或未找到對象&#xff0c;將分別拋出 MultipleObjects…

爬蟲系列之【數據解析之JSON】《三》

目錄 前置知識 一、 json.loads()&#xff1a;JSON 轉 Python 數據 二、json.dump()&#xff1a;python數據 轉 json 并寫入文件 三、json.loads() &#xff1a;json 轉 python數據 四、json.load() &#xff1a;json 轉 python數據&#xff08;在文件操作中更方便&#xf…

Python核心技術,Django學習基礎入門教程(附環境安裝包)

文章目錄 前言1. 環境準備1.1Python安裝1.2選擇Python開發環境1.3 創建虛擬環境1.4 安裝 Django 2. 創建 Django 項目3. Django項目結構介紹4. 啟動開發服務器5. 創建 Django 應用6. 應用結構介紹7. 編寫視圖函數8. 配置 URL 映射9. 運行項目并訪問視圖10. 數據庫配置與模型創建…

功能豐富的自動化任務軟件zTasker_2.1.0_綠色版_屏蔽強制更新閃退

&#x1f680; zTasker 一鍵式效率倍增器使用指南 &#x1f64f; 致謝 首先感謝開發者提供如此高效的工具&#xff01; 軟件本身功能強大&#xff0c;但部分機制需特別注意&#xff01; &#x1f4d6; 軟件概述 zTasker 是一款通過自動化腳本/任務流實現效率飛躍的生產力工…

MFC中CMutex類和CSingleLock類,配合使用疑惑

在使用CMutex過程中&#xff0c;看到別人使用了CSingleLock類&#xff0c;想著明明CMutex已經可以實現線程同步了&#xff0c;為什么還有使用CSingleLock類呢&#xff1f; 在MFC中&#xff0c;雖然CMutex類本身可以實現線程同步&#xff0c;但通常會與CSingleLock類一起使用&am…

【最大半連通子圖——tarjan求最大連通分量,拓撲排序,樹形DP】

題目 分析 最大連通分量肯定是滿足半連通分量的要求&#xff0c;因此tarjan。 同時為了簡化圖&#xff0c;我們進行縮點&#xff0c;圖一定變為拓撲圖。 我們很容易看出&#xff0c;只要是一條不分叉的鏈&#xff0c;是滿足條件的。 于是我們按照拓撲序不斷樹形DP 建邊注意…

LabVIEW正弦信號處理:FFT與最小二乘擬合的參數提取

問題一&#xff1a;LabVIEW能否對采集的正弦力信號進行快速傅里葉變換&#xff08;FFT&#xff09;&#xff0c;并得到幅值和相位結果&#xff1f; 答案&#xff1a; 可以。LabVIEW通過內置信號處理工具包提供完整的FFT分析功能&#xff0c;具體實現如下&#xff1a; FFT分析流…

Nginx+PHP+MYSQL-Ubuntu在線安裝

在 Ubuntu 上配置 Nginx、PHP 和 MySQL 的步驟如下&#xff1a; 1. 更新系統包 首先&#xff0c;確保系統包是最新的&#xff1a; sudo apt update sudo apt upgrade2. 安裝 Nginx 安裝 Nginx&#xff1a; sudo apt install nginx啟動并啟用 Nginx 服務&#xff1a; sudo…

第002文-kali虛擬機安全與網絡配置

1、kali系統介紹 kali是一個基于Linux kernel的操作系統&#xff0c;由BackTrack(簡稱BT)發展而來。BackTrack是2006年推出的一個用于滲透測試及黑客攻防的專用平臺&#xff0c;基于Knoppix(linux的一個發行版)開發。BackTrack版本周期&#xff1a;2006年的起始版本BackTrack …

怎么下載安裝yarn

安裝 npm install --global yarn 是否安裝成功 yarn -v Yarn 淘寶源安裝&#xff0c;分別復制粘貼以下代碼行到黑窗口運行即可 yarn config set registry https://registry.npm.taobao.org -g yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/…

Odoo免費開源CRM技術實戰:從商機線索關聯轉化為售后工單的應用

文 / 開源智造 Odoo金牌服務 Odoo&#xff1a;功能強大且免費開源的CRM Odoo 引入了一種高效的客戶支持管理方式&#xff0c;即將 CRM 線索轉換為服務臺工單。此功能確保銷售和支持團隊能夠無縫協作&#xff0c;從而提升客戶滿意度并縮短問題解決時間。通過整合 CRM 模塊與服…

ArcGIS Pro實戰技巧:靈活運用線條精準分割與裁切面要素

在地理信息系統&#xff08;GIS&#xff09;的應用中&#xff0c;我們經常需要對地圖上的面要素進行精確的分割或裁切。 ArcGIS Pro作為一款強大的GIS軟件&#xff0c;提供了多種工具來滿足這一需求。 本文將詳細介紹如何在ArcGIS Pro中使用線要素對面要素進行分割和裁切&…

基于python的網絡爬蟲爬取天氣數據及可視化分析(Matplotlib、sk-learn等,包括ppt,視頻)

基于Python爬取天氣數據信息與可視化分析&#xff08;文末完整源碼&#xff09; 基于python的網絡爬蟲爬取天氣數據及可視化分析 可以看看演示視頻。 摘要 基于Python爬取天氣數據信息與可視化分析 本論文旨在利用Python編程語言實現天氣數據信息的爬取和可視化分析。天氣…

Angular Loss論文理解

Angular Loss論文理解 一、相較于Triplet loss二、Angular loss的意義三、Angular loss的優點四、Angular Loss五、實施細節六、訓練細節七、未來構想 一、相較于Triplet loss Triplet loss在訓練時&#xff0c;收斂較難 每個三元組需要三次抽樣&#xff0c;然而將某個數據集…

加入二極管的NE555 PWM 電路

只用電阻、電容構成的一般定時電路的占空比無法低于50%&#xff0c;如下圖&#xff1a; 電容的充電路徑上串聯了R1 和R2&#xff0c;而放電路徑上只有R2&#xff0c;所以放電的時間不可能比充電長。加入二極管就能解決這個問題&#xff0c;用二極管把充電和放電路徑分離開&…

本地部署大語言模型-DeepSeek

DeepSeek 是國內頂尖 AI 團隊「深度求索」開發的多模態大模型&#xff0c;具備數學推理、代碼生成等深度能力&#xff0c;堪稱"AI界的六邊形戰士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服務器提供多種計費模式。 DeepSeek-R1-32B配置 配置項 規…