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()