『scrapy爬虫』05. 使用管道将数据写入mysql(详细注释步骤)
# 导入必要的模块
import pymysql
import json
class JsonPipeline(object):
def open_spider(self, spider):
self.file = open('items.json', 'w')
def close_spider(self, spider):
self.file.close()
def process_item(self, item, spider):
line = json.dumps(dict(item)) + "\n"
self.file.write(line)
return item
class MysqlPipeline(object):
def open_spider(self, spider):
# 连接数据库
self.conn = pymysql.connect(host='localhost', user='root', password='123456', db='scrapy', charset='utf8')
self.cursor = self.conn.cursor()
def close_spider(self, spider):
# 关闭数据库连接
self.conn.commit()
self.cursor.close()
self.conn.close()
def process_item(self, item, spider):
# 插入数据库
self.cursor.execute("insert into jobbole_article(title, url, create_date, fav_nums) values (%s, %s, %s, %s)",
(item['title'], item['url'], item['create_date'], item['fav_nums']))
self.conn.commit()
return item
这段代码定义了两个管道类:JsonPipeline
和MysqlPipeline
。JsonPipeline
用于将爬取的数据以JSON格式保存到文件中,而MysqlPipeline
则用于将数据保存到MySQL数据库中。在MysqlPipeline
中,我们连接数据库,在爬虫开始和结束时分别关闭数据库连接,并处理每个爬取的项目,将其保存到数据库中。
评论已关闭