如何将Scrapy数据存储到mysql
时间: 2024-06-10 10:08:42 浏览: 94
毕设项目:scrapy抓取数据存储至本地mysql数据库-大众点评爬虫 后面制作数据分析,难度中等
5星 · 资源好评率100%
数据库中?
可以使用Scrapy提供的MySQL Pipeline来将Scrapy爬虫爬到的数据存储到MySQL数据库中。步骤如下:
1.安装MySQL-python库:
pip install MySQL-python
2.在settings.py文件中添加以下配置:
ITEM_PIPELINES = {'scrapy.contrib.pipeline.images.ImagesPipeline': 1,'scrapy.contrib.pipeline.files.FilesPipeline': 2,'scrapy_mysql_pipeline.MySQLPipeline': 300,}
MYSQL_PIPELINE_URL = 'mysql://user:password@host:port/database'
MYSQL_PIPELINE_TABLE_NAME = 'table'
3.在spider中定义数据库字段:
class MyItem(scrapy.Item):
title = scrapy.Field()
content = scrapy.Field()
4.在spider的最后添加以下代码:
from scrapy.exceptions import DropItem
class MySQLPipeline(object):
def __init__(self):
self.dbpool = adbapi.ConnectionPool('MySQLdb', db=MYSQL_PIPELINE_URL)
def process_item(self, item, spider):
query = self.dbpool.runInteraction(self._process_item, item)
query.addErrback(self.handle_error)
return item
def _process_item(self, conn, item):
conn.execute('insert into' + MYSQL_PIPELINE_TABLE_NAME+ ' (title, content) values (%s,%s)',
(item['title'], item['content']))
def handle_error(self, e):
log.err(e)
raise DropItem("Dropping item due to database error")
5.运行爬虫即可将数据存储到MySQL数据库中。
希望以上回答能够帮到你。
阅读全文