先用request把原始碼獲取,再用解析庫解析,儲存到文字
1- txt
文字開啟方式:
file = open('r 唯讀explore.txt
', '
a', encoding='
utf-8
') #
a代表以追加的方式寫入文字
file.write('\n'
.join([question, author, answer]))
file.write('\n
' + '
=' * 50 + '\n'
) file.close()
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)· 輸出json(data)
讀取json檔案
with open(
'data.json
', 'r'
) as file:
str =file.read()
data =json.loads(str)
print(data)
3- csv
寫入
import讀取importcsvwith 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]])
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...