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

时间:2021-06-29 06:25:42

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