Python scrapy框架教学(四):保存到数据库

保存到Redis数据库

保存到数据库和保存到文件中格式类似的,只不过初始化的时候,将本来是打开文件的操作,转为连接数据库的操作。写入的时候将本来是写入到文件的操作转为写入到数据库中的操作。以 Redis 数据库为例:

这个是保存到redis
class RedisPipeline(object):
  def __init__(self):
    ## 初始化链接
    reids self.redis_cli = redis.StrictRedis(
    host='127.0.0.1',
    port=6379, db=1,
  )

  def process_item(self, item, spider):
    ## 保存到redis
    self.redis_cli.lpush('quotes', json.dumps(dict(item)))
    return item

  def close_spider(self, spider):
    self.redis_cli.close()

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542

保存到MySQL数据库

这个是保存到mysql
class MySQLPipeline(object):
  """ create database quotes charset=utf8;
  use quotes; create table quotes (txt text, author char(20),
  tags char(200)); """

  def __init__(self):
    self.connect = pymysql.connect(
      host='192.168.159.128',
      port=3306,
      db='quotes', # 数据库名
      user='windows',
      passwd='123456',
      charset='utf8',
      use_unicode=True
    )
    # 创建操作数据的游标
    self.cursor = self.connect.cursor()

  def process_item(self, item, spider):
    # 保存到mysql
    # 执行sql语句
    self.cursor.execute(
      'insert into quotes (txt, author, tags) value(%s, %s, %s)', (item['text'], item['author'], item['tags'])
     )
    # 提交数据执行数据
    self.connect.commit()
    return item
  # 关闭链接
  def close_spider(self, spider):
    self.cursor.close()
    self.connect.close()

将数据存入MongoDB

有时,我们想把爬取到的数据存入某种数据库中,可以实现Item Pipeline完成此类任务。下面实现一个能将数据存入MongoDB数据库的Item Pipeline,代码如下:

对上述代码解释如下。

在类属性中定义两个常量:

  • DB_URI 数据库的URI地址。
  • DB_NAME 数据库的名字。
from scrapy.item import Item
import pymongo

class MongoDBPipeline(object):

DB_URI = 'mongodb://localhost:27017/'
DB_NAME = 'scrapy_data'

def open_spider(self, spider):
self.client = pymongo.MongoClient(self.DB_URI)
self.db = self.client[self.DB_NAME]

def close_spider(self, spider):
self.client.close()

def process_item(self, item, spider):
collection = self.db[spider.name]
post = dict(item) if isinstance(item, Item)
else item collection.insert_one(post)
return item

Original: https://blog.csdn.net/m0_48405781/article/details/114887765
Author: 松鼠爱吃饼干
Title: Python scrapy框架教学(四):保存到数据库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/790991/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球