爬虫——保存爬取数据
文章目錄
- 前言
- 一、python怎么把爬取到的數(shù)據(jù)進(jìn)行保存?
- 二、使用數(shù)據(jù)庫步驟
- 1.引入庫
- 2.創(chuàng)建數(shù)據(jù)庫
- 2.創(chuàng)建數(shù)據(jù)表
- 3.插入數(shù)據(jù)
- 4.查詢數(shù)據(jù)
- 三、使用Excel步驟
- 1.引入庫
- 2.創(chuàng)建excel表并寫入數(shù)據(jù)
- 四、使用csv步驟
- 1.引入庫
- 2.寫入數(shù)據(jù)
- 2.讀取csv數(shù)據(jù)
- 總結(jié)
前言
隨著網(wǎng)絡(luò)的迅速發(fā)展,萬維網(wǎng)成為大量信息的載體,如何有效地提取并利用這些信息成為一個(gè)巨大的挑戰(zhàn)。搜索引擎(Search Engine),例如傳統(tǒng)的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個(gè)輔助人們檢索信息的工具成為用戶訪問萬維網(wǎng)的入口和指南。但是,這些通用性搜索引擎也存在著一定的局限性,如:
(1)不同領(lǐng)域、不同背景的用戶往往具有不同的檢索目的和需求,通過搜索引擎所返回的結(jié)果包含大量用戶不關(guān)心的網(wǎng)頁。
(2)通用搜索引擎的目標(biāo)是盡可能大的網(wǎng)絡(luò)覆蓋率,有限的搜索引擎服務(wù)器資源與無限的網(wǎng)絡(luò)數(shù)據(jù)資源之間的矛盾將進(jìn)一步加深。
(3)萬維網(wǎng)數(shù)據(jù)形式的豐富和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,圖片、數(shù)據(jù)庫、音頻、視頻多媒體等不同數(shù)據(jù)大量出現(xiàn),通用搜索引擎往往對這些信息含量密集且具有一定結(jié)構(gòu)的數(shù)據(jù)無能為力,不能很好地發(fā)現(xiàn)和獲取。
(4)通用搜索引擎大多提供基于關(guān)鍵字的檢索,難以支持根據(jù)語義信息提出的查詢。
為了解決上述問題,定向抓取相關(guān)網(wǎng)頁資源的聚焦爬蟲應(yīng)運(yùn)而生。聚焦爬蟲是一個(gè)自動(dòng)下載網(wǎng)頁的程序,它根據(jù)既定的抓取目標(biāo),有選擇的訪問萬維網(wǎng)上的網(wǎng)頁與相關(guān)的鏈接,獲取所需要的信息。與通用爬蟲(general purpose web crawler)不同,聚焦爬蟲并不追求大的覆蓋,而將目標(biāo)定為抓取與某一特定主題內(nèi)容相關(guān)的網(wǎng)頁,為面向主題的用戶查詢準(zhǔn)備數(shù)據(jù)資源。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、python怎么把爬取到的數(shù)據(jù)進(jìn)行保存?
可以將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫或者excel等等
二、使用數(shù)據(jù)庫步驟
1.引入庫
代碼如下:
import sqlite32.創(chuàng)建數(shù)據(jù)庫
代碼如下(示例):
# 創(chuàng)建數(shù)據(jù)庫 conn = sqlite3.connect("test.db") # 打開或創(chuàng)建數(shù)據(jù)庫文件 print("成功打開數(shù)據(jù)庫")如果數(shù)據(jù)庫存在則打開,不存在則創(chuàng)建并打開
2.創(chuàng)建數(shù)據(jù)表
# 創(chuàng)建數(shù)據(jù)表conn = sqlite3.connect("test.db") # 打開或創(chuàng)建數(shù)據(jù)庫文件 print("成功打開數(shù)據(jù)庫") c = conn.cursor() # 獲取游標(biāo)sql = '''create table company(id int primary key not null,name text not null,age int not null,address char (50),salary real);'''c.execute(sql) # 執(zhí)行sql語句 conn.commit() # 提交數(shù)據(jù)庫操作 conn.close() # 關(guān)閉數(shù)據(jù)庫連接print("成功建表")打開數(shù)據(jù)庫獲取游標(biāo)寫sql語句,sql語句可以用三個(gè)單引號包起來避免換行問題,執(zhí)行sql語句并提交數(shù)據(jù)庫操作最后關(guān)閉數(shù)據(jù)庫連接
3.插入數(shù)據(jù)
# 插入數(shù)據(jù) conn = sqlite3.connect("test.db") # 打開或創(chuàng)建數(shù)據(jù)庫文件 print("成功打開數(shù)據(jù)庫") c = conn.cursor() # 獲取游標(biāo)sql = '''insert into company (id,name,age,address,salary)values (2,"老王",18,"深圳",123);'''c.execute(sql) # 執(zhí)行sql語句 conn.commit() # 提交數(shù)據(jù)庫操作 conn.close() # 關(guān)閉數(shù)據(jù)庫連接print("插入數(shù)據(jù)完畢")與創(chuàng)建數(shù)據(jù)庫同理,改變?yōu)椴迦霐?shù)據(jù)的sql語句
4.查詢數(shù)據(jù)
# 查詢數(shù)據(jù)conn = sqlite3.connect("test.db") # 打開或創(chuàng)建數(shù)據(jù)庫文件 print("成功打開數(shù)據(jù)庫") c = conn.cursor() # 獲取游標(biāo)sql = "select * from company"cursor = c.execute(sql) # 執(zhí)行sql語句for i in cursor:for j in i:print(j,end=' ')print() conn.close() # 關(guān)閉數(shù)據(jù)庫連接print("查詢完畢")三、使用Excel步驟
1.引入庫
import xlwt2.創(chuàng)建excel表并寫入數(shù)據(jù)
workbook = xlwt.Workbook(encoding="utf-8") # 創(chuàng)建workbook對象 worksheet = workbook.add_sheet("sheet1") # 創(chuàng)建工作表 worksheet.write(0, 0, "hello ") # 寫入數(shù)據(jù),第一個(gè)參數(shù)“行”,第二個(gè)參數(shù)”列“,第三個(gè)參數(shù)內(nèi)容 workbook.save("test.xls") # 保存數(shù)據(jù)表例子中將寫入的數(shù)據(jù)庫保存到當(dāng)前目錄下的test.xls文件
workbook = xlwt.Workbook(encoding="utf-8") # 創(chuàng)建workbook對象 worksheet = workbook.add_sheet("sheet1") # 創(chuàng)建工作表 for i in range(1,10):for j in range(1,i+1):ride = i*jworksheet.write(i-1,j-1,"%d * %d = %d"%(j,i,ride)) workbook.save("test.xls") # 保存數(shù)據(jù)表在excel中打印九九乘法表
四、使用csv步驟
1.引入庫
import pandas as pd2.寫入數(shù)據(jù)
with open('data.csv', mode='a', encoding='utf-8', newline='') as f:csv_writer = csv.writer(f)csv_writer.writerow(['area', 'curConfirm', 'confirmedRelative', 'confirmed', 'crued', 'died'])以utf-8編碼寫入csv文件
2.讀取csv數(shù)據(jù)
df = pd.read_csv('data.csv',encoding='utf-8') print(df)打印csv中數(shù)據(jù)
總結(jié)
以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了python對數(shù)據(jù)存儲(chǔ)方法的使用,而python提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。
總結(jié)
以上是生活随笔為你收集整理的爬虫——保存爬取数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样存储layui模板引擎后台返回的数据
- 下一篇: 地理位置GEO