在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...