Scrapy 中文輸出與儲存

2021-08-24 20:51:15 字數 2469 閱讀 3449

1、中文輸出

python3.x中中文資訊直接可以輸出處理;

python2.x中:採用中文encode("gbk")或者encode("utf-8")。

2、中文儲存

在scrapy中對資料進行處理的檔案是pipelines.py 檔案,首先開啟專案設定檔案setting.py 配置pipelines。

# configure item pipelines

# see

#item_pipelines =

上面**中的'firstpjt.pipelines.firstpjtpipeline'分別代表「核心目錄名.pipelines 檔名.對應的類名」,將**修改為:

# configure item pipelines

# see

item_pipelines =

然後編寫pipelines.py 檔案:

# -*- coding: utf-8 -*-

# define your item pipelines here

## don't forget to add your pipeline to the item_pipelines setting

# see:

# 匯入codecs模組,使用codecs直接進行解碼

import codecs

class firstpjtpipeline(object):

def __init__(self):

# 以寫入的方式建立或開啟乙個普通的檔案用於儲存爬取到的資料

self.file = codecs.open("e:/steveworkspace/firstpjt/mydata/mydata1.txt", "wb", encoding="utf-8")

def process_item(self, item, spider):

# 設定每行要寫的內容

l = str(item) + '\n'

# 此處通過print() 輸出,方便程式的除錯

print(l)

# 將對應資訊寫入檔案中

self.file.write(l)

return item

def close_spider(self, spider):

self.file.close()

3、輸出中文到json檔案

json資料常見的基本儲存結構有陣列和物件兩種。

陣列形式:["蘋果","梨子","葡萄"]

物件結構為鍵值對形式:

修改pipelines.py 檔案參考:

# -*- coding: utf-8 -*-

# define your item pipelines here

## don't forget to add your pipeline to the item_pipelines setting

# see:

import codecs

import json

class scrapytestpipeline(object):

def __init__(self):

#以寫入的方式建立或開啟乙個json格式檔案

self.file = codecs.open("e:/pycharmworkspace/scrapytest/mydata/datayamaxun.json", "ab", encoding="utf-8")

print("開啟檔案---------------")

def process_item(self, item, spider):

print("開始寫入---------------")

for j in range(0,len(item["bookname"])):

bookname = item["bookname"][j]

# author=item["author"][j]

price = item["price"][j]

book =

#通過dict(item)將item轉化為乙個字典

#然後通過json模組下的dumps()處理字典資料

#在進行json.dumps()序列化的時候,中文會預設使用ascii編碼,顯示中文需要設定ensure_ascii=false

i = json.dumps(dict(book), ensure_ascii=false)

#加上"\n"形成要寫入的一行資料

line = i + '\n'

print("正在寫入檔案---------------")

self.file.write(line)

return item

def close_spider(self, spider):

self.file.close()

print("關閉檔案---------------")

scrapy中輸出中文儲存中文

usr bin python coding utf 8 author dahu import json with open huxiu.json r as f data json.load f print data 0 title for key in data 0 print s s key,da...

scrapy 爬蟲儲存資料

scrapy儲存資訊的最簡單的方法主要有四種,o 輸出指定格式的檔案,命令如下 json格式,預設為unicode編碼 scrapy crawl itcast o teachers.json json lines格式,預設為unicode編碼 scrapy crawl itcast o teache...

scrapy中文字元問題

在scrapy spider的解析函式中,有時候通過如下兩種方式獲得的html資料中中文字元出現類似於 u3010 u6bdb u91cc這種格式的字元。respone.text或者 response.body.decode response.encoding 該字串產生的問題是因為將unicode...