scrapy框架中儲存資料的三種格式

2021-08-25 02:43:04 字數 1510 閱讀 8068

在scrapy框架中儲存資料是在pipeline.py中儲存

切記需要注意在settings裡面設定pipleines的權重值

tem_pipelines =
1.儲存資料為文字格式

# 獲取當前工作目錄

class

jsonpipeline

(object):

defprocess_item

(self,item,spider):

base_dir = os.getcwd()

file_name = base_dir + '/test.txt'

# 以追加的方式開啟並寫入檔案

with open (file_name,"a") as f:

f.write(item + '\n') # \n代表換行符

return item

2.儲存資料為json格式

class jsonpipeline(self,item,spider):

base_dir = os.getcwd()

file_name = base_dir + '/test.json'

# 把字典型別的資料轉換成json格式,並寫入

with

open(file_name,"a") as f:

line = json.dumps(dict(item),ensure_ascii=false,indent=4)

f.write(line)

f.write("\n")

return

item

這裡需要解釋下json.dumps()裡面的幾個引數:

item:提取的資料,資料要轉換為json格式

ensure_ascii:要設定為false,不然資料會直接以utf-8的方式存入

indent:格式化輸出,增加可閱讀性

3.以 excel**的形式儲存

以後進入公司可能需要對爬取的資料進行資料整理,這個就比較方便了.

一般情況下,爬蟲爬取的都是結構化資料,我們一般會用字典來表示.

在csv庫中也提供了字典的寫入方式

import csv

with

open('data.csv','w') as f:

fieldnames = ['id','name','age'] # 定義欄位的名稱

writer = csv.dictwriter(f,fieldnames=fieldnames) # 初始化乙個字典物件

write.writeheader() # 呼叫writeheader()方法寫入頭資訊

# 傳入相應的字典資料

write.writerow()

write.writerow()

write.writerow()

scrapy爬蟲框架 三

pipelines.py from scrapy.exporters import jsonitemexporter class qsbkspiderpipeline object def init self 初始化方法 使用二進位制來寫入,因此 w wb self.fp open duanzi2....

Scrapy框架基礎(三)

7.scrapy管道的使用 7.1 pipeline中常用的方法 open spider self,spider 在爬蟲開啟的時候僅執行一次 close spider self,spider 在爬蟲關閉的時候僅執行一次 7.2 在settings中能夠開啟多個管道,為什麼需要開啟多個?7.3 pip...

爬蟲scrapy框架學習(三)

3.示例2redisspider a.使用方法 它與示例1只有乙個地方不同,就是將start url存入redis中,如下 b.總結 該示例很簡單,只是將start url存入redis key中,就可實現分布式爬蟲,多台電腦共同完成乙個爬蟲,資料不會重複 4.示例3rediscrawlspider...