大資料txt 微盤 資料儲存

2021-10-14 10:58:14 字數 3898 閱讀 5414

python網路爬蟲(第七篇)——資料儲存

一、儲存在檔案中,包括txt檔案和csv檔案

二、儲存在mysql資料庫中。

基本儲存:儲存至txt或csv

1:儲存至txt:前期內容中使用過,儲存僅需幾行**

with open("檔案路徑及檔名.txt",'讀寫模式')as f:    f.write("儲存的資料")

幾種開啟檔案的方式

讀寫方式

可否讀寫

若檔案不存在

寫入方式w寫入

建立覆蓋寫入

w+讀取+寫入

建立覆蓋寫入r讀取

報錯不可寫入

r+讀取+寫入

報錯覆蓋寫入a寫入

建立附加寫入

a+讀取+寫入

建立附加寫入

根據需要,我們可以採用不同的方式開啟檔案。

其中檔名的寫法有三種形式:

1:with open(『c:\\user\\desktop\\title.txt』,』a+』)as f:

2: with open(r『c:\user\desktop\title.txt』,』a+』)as f:

3:with open(『c:/user/desktop/title.txt』,』a+』)as f:

2:把資料儲存至csv

csv(comma-separate values)是逗號分隔值的檔案格式,其檔案以純文字的形式儲存**資料(數字和文字)。csv檔案的每一行都用換行符分隔,列與列之間用逗號分隔 。csv即可用記事本開啟,有可用excel開啟,表現為**形式。這樣可以整齊的看到資料的情況,而txt檔案格式經常遇到變數分隔的問題。

csv的使用分為讀取和寫入兩方面

一、csv的讀取

首先建立乙個csv檔案,如下圖

得到的結果

由此可知csv_reader把每一行資料轉化成了乙個列表(list),列表中從左至右的每個元素是乙個字串。

把資料寫入csv的方法:將變數加入到乙個列表中——使用writerow()方法把乙個列表直接寫入一行中。

import csv

write_list=['666','777','888','999']with open(r'c:\users\86182\desktop\csvtest.csv','w',encoding='utf-8')as f:    w=csv.writer(f)    w.writerow(write_list)

執行後開啟對應的檔案

二、儲存至資料庫

——mysql資料庫:mysql是一種關聯式資料庫管理系統,使用的是sql語言,是訪問資料常用的標準化語言。關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加寫入和提取的速度,資料的儲存也比較靈活。

關聯式資料庫:建立在關係模型的基礎上的資料庫。好比將「小明的個人資訊和出行記錄」分別放在「資訊表中」和「出行記錄」表中,用小明的資訊「id」作為主關鍵字把兩個表關聯起來。

mysql的基本操作

——命令列

這是乙個命令列的操作

——mysql workbench圖形化介面庫

輸入root密碼後,可以命令列一樣運算元據庫,也可以通過單擊選項進行操作。

此處輸入show databases; 後按ctrl+enter鍵後出結果。

1、建立資料庫:

例如建立網路爬蟲的資料庫,在介面庫輸入

create database scrapying;

按下ctrl+enter後沒報錯就顯示建立了乙個scrapying 的資料庫

建立之後所有的命令都會執行在這個資料庫中,除非切換到另一資料庫(use another;)

2、建立資料表並檢視:

這個剛建立的資料庫什麼都沒有,我們需要在這個scrapying資料庫中建立乙個**(注意建立資料表必須指明每一列資料的名稱和類別):

create table urls(

id int not null auto_increment,

url varchar(1000) not null,

content varchar(4000) not null,

created_time timestamp default current_timestamp,

primary key(id)

describe urls;

執行之後的結果:

上述列表中:建立了四個變數(id、url、content、create_time),int(整型),

auto_increment(屬性為自己增加),primary key(id)將id定義為主鍵。

url和content的類別是可變長度的字串varchar,括號裡的數字代表長度的最大值,not null 表示url和content不能為空,create_time為該資料新增的時間,不需要設定,它會自動根據當時的時間填入。

3、在資料表中插入資料

insert into urls(url,content)values('www.baidu.com','新增的內容');

執行後資料就插入了

4、從資料表中提取資料

select *from urls where id=1;

從表urls中把id=1的整行資料提取出來

select content from urls where id=1;

從表urls中把id為1的content部分資料提取出來

5、刪除資料

刪除表urls中的url的資料。

6、修改資料

update urls set url='www.rubbish.com',content='rubh'where id=1;

修改表urls中url和content的資料。

python操作mysql資料庫(安裝pymysql庫:pip install pysql)

import pymysql#開啟資料庫db=pymysql.connect('localhost','root','自己的密碼','scrapying')#使用cursor()方法獲取游標操作cursor=db.cursor()#sql插入語句sql="""insert into urls(url,content)values('www.baidu.com','rubh')"""try:    cursor.execute(sql)#執行sql語句    db.commit()except:    db.rollback()#發生錯誤則返回db.close()#關閉資料庫

開啟mysql 8.0 command line client-unicode,檢視結果。

關注我,獲取更多小技能!

大資料儲存

主流資料庫 1 mysql 以前是sun公司的產品,後被甲骨文公司收購,開源 2 oracel 成本較高,100w左右 3 db2 成本較高,100w左右 4 nosql 非關係性資料庫,基本都是key value結構 很多門戶 都使用mysql,例如 雅虎,資料庫的主從備份,是處於負載均衡範疇。資...

大資料儲存綜述

san 金融電信級別,高成本的儲存方式,涉及到光纖和各類高階裝置,可靠性和效能都很高,除了貴和運維成本高,基本都是好處。檔案儲存 nas,網路儲存,用於多主機共享資料。物件儲存 跟自己開發的應用程式打交道,如網盤。分布式鍵值系統 分布式鍵值系統用於儲存關係簡單的半結構化資料。典型的分布式鍵值系統有a...

大資料儲存HBase

這兩天要寫乙個方案,某單位想建乙個中心資料庫,匯聚各業務系統資料,以及各種網上抓取的預報資料。我設想是用hbase。主要考慮點是 1 開源 2 支援海量資料 該單位的資料量增長按規劃還是很大的,大約每天20gb 關係型資料庫就不考慮了。rdbms本質上是單機系統,拿mysql來說吧,主從複製,讀寫分...