Python爬取豆瓣Top250并可視化(三) —— 保存數(shù)據(jù)到數(shù)據(jù)庫 —— Sqlite
Sqlite是一個(gè)輕量級(jí)數(shù)據(jù)庫,前面說了將數(shù)據(jù)保存到excel和csv,但是這個(gè)項(xiàng)目的目的是將數(shù)據(jù)可視化后放在網(wǎng)站上以供展示的。所以保存到數(shù)據(jù)庫會(huì)比較好一點(diǎn)。Sqlite和Python結(jié)合的基本用法在此——傳送門。
有幾點(diǎn):

1,headers里加cookie是因?yàn)檎{(diào)試sql語句的時(shí)候訪問次數(shù)過多,被403了,所以在網(wǎng)頁端登錄后提取cookie加到腳本中才能正常訪問;
2,我用的pycharm版本是2022.1的。寫數(shù)據(jù)庫表格主鍵的時(shí)候,不支持autoincrement;所以在save_to_database函數(shù)里用n進(jìn)行計(jì)數(shù),如果支持主鍵,sql語句可以簡單很多,最起碼插入語句就可以不用寫id,那就可以不用n來計(jì)數(shù);
3,也由于創(chuàng)建表格寫主鍵的時(shí)候不支持autoincrement,構(gòu)造sql語句的時(shí)候,用的是format而不是用的%s;format相對(duì)清晰一些,用%s構(gòu)造,還得考慮id是整型值的問題;
4,構(gòu)造sql語句的時(shí)候,值的部分一定是有雙引號(hào)(也是可以是單引號(hào)""的),要注意創(chuàng)建表格的時(shí)候,數(shù)值類型與插入的時(shí)候值的對(duì)應(yīng)。

再次記錄Python爬蟲數(shù)據(jù)與sql處理思路:

1,連接數(shù)據(jù)庫;
2,獲取數(shù)據(jù)庫游標(biāo)對(duì)象;
3,構(gòu)造sql語句;
4,利用游標(biāo)對(duì)象處理sql語句;
5,提交數(shù)據(jù)庫更改commit(如果是查詢數(shù)據(jù)庫內(nèi)容就不需要commit進(jìn)行更改);
6,關(guān)閉數(shù)據(jù)庫。

最后是存儲(chǔ)到數(shù)據(jù)后的可視化表格截圖:

數(shù)據(jù)可視化項(xiàng)目的數(shù)據(jù)全部來源于此。
聲明:本文僅用于學(xué)些交流。也希望做爬蟲的同學(xué),在調(diào)試腳本的時(shí)候,如果需要有大量翻頁處理,倡議腳本就翻一頁,盡可能讓腳本少請(qǐng)求服務(wù)器,給服務(wù)器減壓。