本文實例講述了Python3爬蟲學習之將爬取的信息保存到本地的方法。分享給大家供大家參考,具體如下:
將爬取的信息存儲到本地
之前我們都是將爬取的數據直接打印到了控制臺上,這樣顯然不利于我們對數據的分析利用,也不利于保存,所以現在就來看一下如何將爬取的數據存儲到本地硬盤。
1 對.txt文件的操作
讀寫文件是最常見的操作之一,python3 內置了讀寫文件的函數:open
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None))
Open file and return a corresponding file object. If the file cannot be opened, an OSError
is raised.
其中比較常用的參數為file和mode,參數file為文件的路徑,參數mode為操作文件的方式(讀/寫),函數的返回值為一個file對象,如果文件操作出現異常的話,則會拋出 一個OSError
還以簡書首頁文章題目為例,將爬取到的文章標題存放到一個.txt文件中,具體代碼如下:
# -*- coding:utf-8 -*-from urllib import requestfrom bs4 import BeautifulSoupurl = r'http://www.jianshu.com'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}page = request.Request(url, headers=headers)page_info = request.urlopen(page).read().decode('utf-8')soup = BeautifulSoup(page_info, 'html.parser')titles = soup.find_all('a', 'title')try: # 在E盤以只寫的方式打開/創建一個名為 titles 的txt文件 file = open(r'E:/titles.txt', 'w') for title in titles: # 將爬去到的文章題目寫入txt中 file.write(title.string + '/n')finally: if file: # 關閉文件(很重要) file.close()open中mode參數的含義見下表:
| 符號 | 含義 |
|---|---|
| r' | 以只讀模式打開文件(默認模式) |
| w' | 以只寫的方式打開文件,如果文件存在的話會先刪除再重新創建 |
| x' | 以獨占的方式打開文件,如果文件已經存在則錯誤 |
| a' | 以寫的形式打開文件,若文件已存在,則以追加的方式寫入 |
| b' | 二進制模式 |
| t' | 文本模式(默認) |
| +' | 更新文件(讀/寫) |
其中't'為默認模式,'r'相當于'rt',符號可以疊加使用,像'r+b'
新聞熱點
疑難解答