Scrapy——將數據保存到MySQL數據庫

Scrapy——將數據保存到MySQL數據庫

1. 在MySQL中創建數據庫表job_inf:

 1 Create table job_inf(
 2     id int(11) not null auto_increment primary key,
 3     title varchar(255),
 4     salary varchar(255),  
 5     company varchar(255),
 6     url varchar(500),
 7     work_addr varchar(255),
 8     industry varchar(255),
 9     company_size varchar(255),
10     recruiter varchar(255),
11     publish_date varchar(255)
12 
13 )

2. 在scrapy項目中將Pipeline文件修改如下:

 1 import mysql.connector
 2 
 3 
 4 class ZhipinspiderPipeline(object):
 5     #定義構造器,初始化要寫入的文件
 6     def __init__(self):
 7         self.conn=mysql.connector.connect(user='root',password='12345',
 8             host='localhost',port='1006',database='mypython',use_unicode=True)
 9         self.cur=self.conn.cursor()
10     
11     #重寫close_spider回調方法,用於關閉數據庫資源
12     def close_spider(self,spider):
13         print('------close database connection------------')
14         #關閉游標
15         self.cur.close()
16         #關閉連接
17         self.conn.close()
18     
19     def process_item(self,item,spider):
20         #使用execute方法將item對象中的信息插入數據庫中
21         self.cur.execute('INSERT INTO job_inf Values(null,%s,%s,%s,%s,%s,%s,%s,%s,%s,)',(item['title'],item['salary'],item['company'],item['url'],item['work_addr'],item['indeustry'],item.get('company_size'],item['recruiter'],item['publish_date'])))
22         self.conn.commit() 

 

 
posted @ 2019-08-12 08:53  RiocasTure  阅读(113)  评论(0编辑  收藏  举报