python 爬蟲筆記(五) 資料儲存

2022-09-15 23:57:09 字數 2864 閱讀 9398

先用request把原始碼獲取,再用解析庫解析,儲存到文字

1- txt

文字開啟方式:

file = open('

explore.txt

', '

a', encoding='

utf-8

') #

a代表以追加的方式寫入文字

file.write('\n'

.join([question, author, answer]))

file.write('\n

' + '

=' * 50 + '\n'

) file.close()

r 唯讀

rb 二進位制唯讀

r+ 讀寫

rb+ 二進位制讀寫

w 只用於寫入

wb 二進位制寫入

w+ 讀寫,存在覆蓋,不存在新建

a 追加

a+ 追加讀寫

2- json

j**ascript 物件標記,通過物件和陣列的組合來表示資料,構造簡潔但是結構化程度非常高,它是一種輕量級的資料交換格式。一切皆物件,常用的是物件和陣列

物件 資料結構為 的鍵值對結構

陣列 資料結構為 ["j**a", "j**ascript", "vb", ...] 的索引結構

· 乙個json物件

[, ]
· 讀取json

loads() 方法將 json 文字字串轉為 json 物件,可以通過 dumps()方法將 json 物件轉為文字字串。

data =json.loads(str)

print

(data)

讀取json檔案

with open(

'data.json

', 'r'

) as file:

str =file.read()

data =json.loads(str)

print(data)

· 輸出json

3- csv

寫入

import

csvwith open(

'data.csv

', 'w'

) as csvfile:

writer =csv.writer(csvfile)

writer.writerow(['id

', '

name

', '

age'

]) writer.writerows([[

'10001

', '

mike

', 20], ['

10002

', '

bob', 22], ['

10003

', '

jordan

', 21]])

讀取import

pandas as pd df = pd.read_csv('

data.csv')

print(df)

rdb- 二維表儲存;可通過主鍵外來鍵關聯

1- mysql儲存

pymysql

內容包括:連線資料庫、建立表、插入資料、刪除、查詢

一般流程:

import

pymysql

db = pymysql.connect(host='

localhost

',user='

root

', password='

123456

', port=3306) #

connect()方法宣告乙個連線物件

cursor =db.cursor()

sql = ''

try:

cursor.execute(sql, (id, user, age))

db.commit()

except

: db.rollback()

#事務回滾,保證資料一致性

db.close()

關係型資料庫屬性:

nosql 是基於鍵值對的,而且不需要經過 sql 層的解析,資料之間沒有耦合性,效能非常高。

細分-

對於爬蟲的資料儲存來說,一條資料可能存在某些字段提取失敗而缺失的情況,而且資料可能隨時調整,另外資料之間能還存在巢狀關係,因此多採用nosql。常用的是mongodb和redis

1- mongodb 

在 mongodb 中,每條資料其實都有乙個 _id 屬性來唯一標識,如果沒有顯式指明 _id,mongodb 會自動產生乙個 objectid 型別的 _id 屬性。insert() 方法會在執行後返回的 _id 值。

##本系列內容為《python3爬蟲開發實戰》學習筆記。本系列部落格列表如下:

(零)學習路線

(一)開發環境配置

(二)爬蟲基礎

(三)基本庫使用

(四)解析庫使用

(五)資料儲存

(六)ajax資料爬取

(七)動態渲染頁面爬取

selenium

持續更新...

對應**請見:..

Python爬蟲學習筆記(五)

使用美麗湯爬取三國演義 定位元素和屬性三種方式 beautifulsoup 正則 xpath soup.tagname soup.find soup.find all soup.select import requests from bs4 import beautifulsoup if name ...

python網路爬蟲筆記(五)

一 python的類物件的繼承 1 所有的父類都是object類,由於類可以起到模組的作用,因此,可以在建立例項的時候,巴西一些認為必須要繫結的屬性填寫上去,通過定義乙個特殊的方法 init 繫結屬性值 注意 init 方法的第乙個引數永遠是self,表示建立的是例項本身,在 init 方法內部,就...

python爬蟲資料儲存JSON儲存

encoding utf 8 import re import requests import json from requests.exceptions import requestexception def get open page url try 請求頭 headers 使用localhos...