scrapy item傳遞出錯

2021-07-23 22:48:41 字數 739 閱讀 6625

最近在練習用scrapy爬文字資料,在爬某問答社群的時候,因為問題有兩級分類:c1,c2,我用乙個列表來儲存分類資訊:item['class'] = [c1,c2]

但是在使用request函式向下一級傳遞item資訊時,使用如下函式

request(href,meta=,callback=self.parse2,dont_filter=true)

卻發現傳遞到parse2中的item['class']的值與傳遞前不同,在傳遞前,我的item['class']值無論是[c1,c2]還是[c1,c3]還是[c1,c4],傳遞後都變為了[c1,c4]。

查詢原因後,發現是因為使用request函式傳遞item時,使用的是淺複製(物件的字段值被複製時,字段引用的物件不會被複製),因此

item

被複製時,

class

字段對應的列表中的值

c1,c2

沒有被複製。

解決方法:

在呼叫request

時使用深複製

import copy

class spider(scrapy.spider)

name=['xx']

start_urls=['xx']

def parse(self,response):

#...

yield   request(href,meta=,callback=self.parse2,dont_filter=true)

關於鬧鐘系統中,intent資料傳遞出錯的問題修復

intent intent new intent context,myreceiver.class intent.setaction myreceiver.acion result yes intent.putextra result result pendingintent pi pendingi...

springMVC 引數傳遞出現中文亂碼

springmvc 中所有編碼方式都設定為 utf 8 可還是出現接收引數時出現中文亂碼問題。預設情況下,springmvc的編碼方式是 iso 8859 1 因此,如果引數傳遞如果出現問題,只要將引數轉變為 utf 8 引數即可。如下解決方式 byte bb string str1 request...

SpringBoot 前後端時間傳遞出現誤差

前後端之間傳遞的時間出現了誤差,這個問題主要是由於編碼格式導致的,前端傳回來的是乙個字串,一般來說是springboot是按照預設的方式將字串轉換為date型別的.但是,要是你想要按照你的方式傳遞的話,就會出現一些問題了,比如時間快了或者慢了幾小時啊,一天啊什麼的,這個時候就是要定製自己的編碼方式了...