首页 > 数据库 >Scrapy保存数据到多个数据库

Scrapy保存数据到多个数据库

时间:2023-07-02 14:33:06浏览次数:48  
标签:self spider 保存 item Scrapy client close 数据库 def

Scrapy保存数据到多个数据库

image-20220628205615196

目标网站:中国福利彩票网 双色球往期数据

阳光开奖 (cwl.gov.cn) http://www.cwl.gov.cn/ygkj/wqkjgg/

代码

class MongoPipeline:
  def open_spider(self, spider):
    self.client = pymongo.MongoClient()
    self.ssq = self.client.bjsxt.ssq
  def process_item(self, item, spider):
    if item.get('code') =='2022086':
      self.ssq.insert_one(item)
    return item
  def close_spider(self, spider):
    self.client.close()


# pip install pymysql==1.0.2
import pymysql
from scrapy.exceptions import DropItem
class MySQLPipeline:
  def open_spider(self, spider):
    # 创建数据库连接
    self.client = pymysql.connect(host='192.168.31.151',port=3306,user='root',password='123',db='bjsxt',charset='utf8')
    # 获取游标
    self.cursor = self.client.cursor()
  def process_item(self, item, spider):
    if item.get('code') =='2022086':
      raise DropItem('2022086 数据已经在mongo保存过了')
    # 写入数据库SQL
    sql = 'insert into t_ssq (id,code,red,blue) values (0,%s,%s,%s)'
    # 写的数据参数
    args = (item['code'],item['red'],item['blue'])
    # 执行SQL
    self.cursor.execute(sql,args)
    # 提交事务
    self.client.commit()
    return item
  def close_spider(self, spider):
    self.cursor.close()
    self.client.close()

 

标签:self,spider,保存,item,Scrapy,client,close,数据库,def
From: https://www.cnblogs.com/jiangjiayun/p/17520760.html

相关文章

  • COIS-3380数据库设计
    COIS-3380DatabaseAssignmentSoccerLeagueostapplicationsthatcreateaproduct,likeadocument,allowyoutocreateandworkwiththeitemandnameitlaterwhenyousaveorexit.Databasesmustbenamedandplacedinthedesiredfolderwhentheyare......
  • 使用LINQ to SQL将数据从一个数据库复制到另一个数据库
    作者:光脚丫思考 有关于数据库访问技术,通常所用到的研习数据库或许更多的要算是Northwind了。呵呵!至少,我自己是经常折腾这样的一个示例数据库。虽然如此,对这个数据库的了解,自我感觉还是相当的肤浅的。或者,只是自己认为没有必要把这个数据库吃的那么透彻。^_^我想恐怕正是因为有了这......
  • 使用LINQ to SQL将数据从一个数据库复制到另一个数据库
    作者:光脚丫思考时间:8/30/20105:04:58PM 有关于数据库访问技术,通常所用到的研习数据库或许更多的要算是Northwind了。呵呵!至少,我自己是经常折腾这样的一个示例数据库。虽然如此,对这个数据库的了解,自我感觉还是相当的肤浅的。或者,只是自己认为没有必要把这个数据库吃的那么透彻。^......
  • PostgreSQL 数据库与模式(二)
    删除数据库如果确定一个库不需要了,可以使用DROPDATABASE语句删除一个数据库(工作中谨慎删库):DROPDATABASE[IFEXISTS]name;如果使用了IFEXISTS,删除一个不存在的数据库时不会产生错误信息。删除数据库会同时删除该数据库中所有的对象,以及文件系统中的数据目录。只有数据库......
  • 提升项目数据查询速度:从pgsql数据库性能到SQL优化的实战经验分享
    最近在项目中遇到这样一个问题,在进行数据查询的时候,特别的慢。项目的基本情况首先描述下项目的使用情况,数据库使用的是postgresql关系型数据库,主要数据存储字段data使用的类型是JSONB。data字段存储数据,这个数据是包含了不少的图元,特别是在性能测试中,加入了特别多的图元信息,最......
  • 向量数据库 及其 应用
    什么是向量数据库向量数据库是一种专门用于存储和处理向量数据的数据库系统。向量数据是指由一组数值或特征组成的数据,可以表示为多维空间中的向量。向量数据库提供了高效的存储和查询机制,以支持对大规模向量数据的快速检索和分析。传统的关系型数据库在处理向量数据时存在一些......
  • Thinkphp6 连接达梦数据库
    Thinkphp6连接达梦数据库这里使用IDEAphpEnv PHP7.3Thinkphp6 桌面操作系统:Windows11虚拟机:VMware服务器操作系统:银河麒麟在虚拟机操作与windows无异参考资料参考资料第一步配置php环境在达梦数据库安装目录下找到pdo73nts_dm.dllphp73nts_dm.dll两个文件......
  • 爬虫-Scrapy框架安装使用2
    Scrapy框架其他方法功能集合笔记使用LinkExtractor提取链接使用Selectorimportscrapyfrombs4importBeautifulSoupclassBookSpider(scrapy.Spider):name="book"allowed_domains=["books.toscrape.com"]start_urls=["http://books.t......
  • 肖sir___数据库语句优化方法
        1.避免出现SELECT*FROMtable语句,要明确查出的字段。案例:好:sql= "selectpeople_name,pepole_agefrompeople";坏:sql= "select*frompeople";使用select*的话会增加解析的时间,另外会把不需要的数据也给查询出来,数据传输也是耗费时间的,比如text类型......
  • IDEA:用IDEA生成对应数据库表的实体类
    不想从数据库一个个生成实体类。配置好数据库信息后,在项目结构里配置JPA,下载配置persistence.xml文件。 第一次使用需要下载对应jar包,确定即可。之后会在下方出现相应数据库信息,右键数据库 点击通过数据库架构  确定则生成,当新生成表时,可能不显示,退出idea或刷新,再......