1.TXT文本存儲html
將數據保存到TXT文本的操做很是簡單,並且TXT文本幾乎兼容任何平臺,可是有個缺點就是不利於檢索,因此若是對檢索和數據結構要求不高,追求方便第一的話,能夠 採用TXT文本存儲。json
基本實例數組
首先能夠用Requests將網頁源代碼獲取下來,而後使用PyQuery解析庫進行解析,接下來將提取的標題、回答者、回答保存到文本。數據結構
import requests from pyquery import PyQuery as pq url = 'https://www.zhihu.com/explore' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' } html = requests.get(url, headers=headers).text doc = pq(html) items = doc('.explore-tab .feed-item').items() for item in items: question = item.find('h2').text() author = item.find('.author-link-line').text() answer = pq(item.find('.content').html()).text() file = open('explore.txt', 'a', encoding='utf-8') file.write('\n'.join([question, author, answer])) file.write('\n' + '=' * 50 + '\n') file.close()
首先用Requests提取了知乎發現頁面,而後將熱門的問題、回答者、答案全文提取出來,而後利用了Python提供的open()方法打開一個文件,獲取文件操做對象,而後利用對象的write方法將提取的內容寫入文件,最後調用close方法將其關閉,這樣抓取的內容便可成功寫入文本中。編碼
2.Json文件存儲url
Json,全稱爲 JavaScript Object Notation, 也就是 JavaScript 對象標記,經過對象和數組的組合來表示數據,構造簡潔可是結構化程度很是高,它是一種輕量級的數據交換格式,本節咱們來了解一下利用 Python 保存數據到 Json 文件的方法。spa
讀取Json:code
import json str = ''' [{ "name": "Bob", "gender": "male", "birthday": "1992-10-18" },{ "name": "Selina", "gender": "female", "birthday": "1995-10-18" }] ''' print(type(str)) data = json.loads(str) print(data) print(type(data))
輸出Json:htm
import json data = [{ "name": "Bob", "gender": "male", "birthday": "1992-10-18" }, { "name": "王銀濱", "gender": "男", "birthday": "1997-01-01" }] with open('data.json', 'w', encoding='utf-8') as file: file.write(json.dumps(data, indent=2, ensure_ascii=False))
參數indent表明縮進字符個數;ensure_ascii爲False,表示另外規定文件輸出的編碼。對象
3.CSV文件存儲
CSV,全稱叫作 Comma-Separated Values,中文能夠叫作逗號分隔值或字符分隔值,其文件以純文本形式存儲表格數據。該文件是一個字符序列,能夠由任意數目的記錄組成,記錄間以某種換行符分隔,每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最多見的是逗號或製表符,不過全部記錄都有徹底相同的字段序列,至關於一個結構化表的純文本形式,它相比 Excel 文件更加簡介,XLS 文本是電子表格,它包含了文本、數值、公式和格式等內容,而 CSV 中不包含這些內容,就是特定字符分隔的純文本,結構簡單清晰,因此有時候咱們用 CSV 來保存數據是比較方便的,本節咱們來說解下 Python 讀取和寫入 CSV 文件的過程。
寫入:
import csv with open('data.csv', 'w') as csv_file: writer = csv.writer(csv_file, delimiter=' ') # delimiter參數修改列於列之間的分隔符 writer.writerow(['id', 'name', 'age']) writer.writerow(['1001', 'Mike', 20]) writer.writerow(['1002', 'Bob', 22]) writer.writerow(['1003', 'Jordan', 21])
首先打開了一個 data.csv 文件,而後指定了打開的模式爲 w,即寫入,得到文件句柄,隨後調用 csv 庫的 writer() 方法初始化一個寫入對象,傳入該句柄,而後調用 writerow() 方法傳入每行的數據便可完成寫入。
讀取:
import csv with open('data.csv', 'r', encoding='utf-8') as csvfile: reader = csv.reader(csvfile) for row in reader: print(row)
列表形式:
import pandas as pd df = pd.read_csv('data.csv') print(df)