Scrapy item資料儲存到mysql

2021-08-19 00:13:56 字數 1908 閱讀 1659

以下操作是在window環境下進行的

pip install mysqlclient
2.新建pipelineitem 類
class mysqlpipelineitem(object):

def __init__(self):

pass

def process_item(self,item,spider):

pass

def close_spider(self):

pass

3資料庫連線

匯入模組import mysqldb資料庫連線

mysqldb.connect(*base,**kw)

base是乙個可變的列表(主要是資料庫的連線資訊),需要有序

kw 是可變引數的字典型別提供資料庫連線的額外資訊

self.__conn = mysqldb.connect(

'127.0.0.1'

,'root'

,'111111'

,'scrapy'

,'scrapy'

,'3306',**

)self.__cursor = self.__conn.cursor(

)#獲取cursor

執行sql語句
# sql 中可以使用佔位符,佔位符內容的填充需要放在第二個引數 tuple_argument 中

self.__cursor.execute(sql,tuple_argument)

self.__conn.commit(

)

配置item_pipelines

在settings.py檔案下找到item_pipelines,新增自定義的pipeline

item_pipelines =

完整的**
import mysqldb

class

mysqlpipelineitem

(object):

def__init__

(self)

: self.__conn = mysqldb.connect(

'127.0.0.1'

,'root'

,'root'

,'scrapy',**

) self.__cursor = self.__conn.cursor(

)def

process_item

(self,item,spider)

: sql =

'''insert into article(title,url, image_url,create_time,content) values (%s, %s, %s, %s, %s)

'''sql.__cursor.execute(sql,

(item[

'title'

],item[

'url'

],item[

'image_url'

],item[

'create_time'

],item[

'content'])

) self.__conn.commit(

)return item

defclose_spider

(self)

: self.__cursor.close(

) self.__conn.close(

)

出現過的問題:

typeerror: not all arguments converted during string formatting

就是sql語句的佔位符個數和實際提供引數值個數不同

把資料儲存到本地

student.h import inte ce student nsobject property nonatomic,copy nsstring name property nonatomic,copy nsstring property nonatomic,assign nsinteger a...

ADo資料儲存到LIST

事件呼叫listquerybyado方法 private void button2 click object sender,eventargs e 鏈結資料,獲取資料並將資料傳給converttomodel dt public listquerybyado string connstr,string...

python資料儲存到檔案

1 使用open與print進行資料儲存到檔案 filename列表形式檔名 def write file filename try for item name in filename out file open item name,w 寫模式開啟檔案,並賦值至檔案物件 data this is i...