scrapy 的 field 可以設(shè)置任何類型
可以先創(chuàng)建一個(gè)數(shù)組變量
test = []
然后將test賦值給field 即可使用吉执。
--------------------------------------------------------------------------------------------------------------------------------------
如果存在頁面間的傳值問題溪食,可以使用 yield 中的meta
metas={'a':1,'b':2}
yield(url,callback=yourcallback,meta=metas, dont_filter=True)
--------------------------------------------------------------------------------------------------------------------------------------
數(shù)據(jù)庫設(shè)置問題
例 mongo
```
#setings.py
ITEM_PIPELINES = {
? ? ? 'xhs.pipelines.XhsPipeline': 300,
? ? ? 'xhs.pipelines.XhsPipeline':300
}
MONGODB_SERVER = 'localhost'
MONGODB_PORT = 27017
MONGODB_DB = ''#你的數(shù)據(jù)庫名稱
MONGODB_COLLECTION = '' #你的collections
# piplines.py
import pymongo
class XhsPipeline(object):
? ? def __init__(self):
? ? ? ? connection = pymongo.MongoClient(
? ? ? ? ? ? settings['MONGODB_SERVER'],
? ? ? ? ? ? settings['MONGODB_PORT']
? ? ? ? )
? ? ? ? db = connection[settings['MONGODB_DB']]
? ? ? ? self.collection = db[settings['MONGODB_COLLECTION']]
? ? ? ? # self.coll = db[settings['MONGO_COLL']]? # 獲得collection的句柄
? ? ? ? # self.db = db.primer
? ? def process_item(self, item, spider):
? ? ? ? pass #寫你的代碼
```
例 mysql? 這次儲(chǔ)存內(nèi)容報(bào)錯(cuò)了斤程,報(bào)錯(cuò)內(nèi)容沒有保存 衅码,換的mongo
```
import pymysql
def dbHandle():
? ? conn = pymysql.connect(
? ? ? ? host='localhost',
? ? ? ? user='root',
? ? ? ? passwd='',
? ? ? ? charset='utf8',
? ? ? ? use_unicode=True
? ? )
? ? return conn
class XhsPipeline(object):
? ? def process_item(self,item,spider):
? ? ? ? dbObject = dbHandle()
? ? ? ? cursor = dbObject.cursor()
? ? ? ? # sql=sql語句
? ? ? ? sql='insert into 庫.表(字段名稱) values (%s,%s,%s,%s,%s)'
? ? ? ? try:
? ? ? ? ? ? cursor.execute(sql,(item[字段名稱]))
? ? ? ? ? ? dbObject.commit()
? ? ? ? except Exception as e:
? ? ? ? ? ? print(e)
? ? ? ? ? ? dbObject.rollback()
```
為什么打出來不是代碼塊呢啊哎媚。蒙挑。幼东。
可以去這里看?噠噠噠社區(qū)