Sqlalchemy:从Scrapy项目动态创建表

2023-11-21

我正在使用 sqlalchemy 1.1 和 scrapy。我目前正在使用管道通过 sqlalchemy 将提取的数据存储在 sqllite 表中。我想动态创建一个表来容纳正在抓取的项目。

我的静态管道元素如下所示:

class SQLlitePipeline(object):

    def __init__(self):
        db_path = "sqlite:///"+settings.SETTINGS_PATH+"\\data.db"
        _engine = create_engine(db_path)
        _connection = _engine.connect()
        _metadata = MetaData()
        _stack_items = Table(table_name, _metadata,
                             Column("id", Integer, primary_key=True),
                             Column("value", Text))
                             Column("value2", Text))
        _metadata.create_all(_engine)
        self.connection = _connection
        self.stack_items = _stack_items

    def process_item(self, item, spider):

            try:
                ins_query = self.stack_items.insert().values(
                value=item['value'],
                value2=item['value2'],)
                self.connection.execute(ins_query)
            except IntegrityError:
                    print('THIS IS A DUP')
            return item

项目.py:

class Filtered_Item(scrapy.Item):

    value= scrapy.Field()
    value2= scrapy.Field()

如何修改上面的管道以动态创建和插入过滤的项目值,而不是像现在一样对这些值进行硬编码?


实际上有一个软件包可以帮助您解决这个问题。

查看:数据集:懒人数据库

以下是该页面的摘录:

Features

自动模式:

如果写入数据库中不存在的表或列,则会自动创建。

Upserts:

记录会被创建或更新,具体取决于是否可以找到现有版本。简单的查询助手 查询,例如表中的所有行或跨域的所有不同值 列集。

兼容性:

数据集构建在 SQLAlchemy 之上,可与所有主要数据库配合使用,例如 SQLite、PostgreSQL 和 MySQL。

脚本化导出:

可以根据脚本配置导出数据,使过程变得简单且可复制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sqlalchemy:从Scrapy项目动态创建表 的相关文章

  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • Azure 导出 SQL 数据库示例

    鉴于 Microsoft 不推荐使用以前的导出 SQL DB 的方法 他们提出了一个建议的示例here subscriptionId YOUR AZURE SUBSCRIPTION ID Login AzureRmAccount Set A
  • 如何对 CursorLoader 结果进行排序?

    我使用 CursorLoader 查询结果 这不是我想要在 ListFramgenet 中显示的顺序 怎么排序呢 我用它来设置适配器 mAdapter new SimpleCursorAdapter getActivity android
  • 动态添加按钮到对话框

    有没有办法动态添加按钮到 jquery ui 中的对话框 我尝试使用 this add button 有时您也想稍后添加按钮 var mydialog result of jqueryui dialog var buttons mydial
  • 图像边框半径在 css 转换期间不起作用

    我在用着border radius 50 使图像变圆 默认情况下 图像会被模糊和缩放 带有隐藏的溢出 悬停时它将消除模糊和缩放 但是 当我在元素上使用 CSS 过渡时 它会在过渡期间暂时显示溢出 http jsfiddle net jonn
  • WatchOS 2:“无法安装手表应用程序”“启动‘TestApp WatchKit 应用程序扩展’时出错”

    每次我尝试在 Xcode 7 beta 4 中安装 watchOS 2 应用程序时 我都会在 iOS 上收到 AlertView 弹出错误 无法安装手表应用 TestApp 已安装在您的 iPhone 上 但 Apple Watch 的 T
  • 如何将 php 放入 JavaScript 中?

    我已经尝试过 但它不起作用 这里是tutorial我为此目的使用过 尝试这个
  • 使用 php 创建 api

    我想使用php开发一个简单的api 我的功能是 如果有人输入一些所需的值 那么他们将从我网站旁边的算法中获得计算结果 我不知道从哪里开始 并且也没有获得任何使用 PHP 的 API 示例代码 听起来您想创建一个其他人可以连接 发送答案和检索
  • 用于触摸手势的优秀 JavaScript 库或 jQuery 插件是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我不需要像 Sencha
  • 让 ng-repeat 在 AngularJS 的 $interpolate 服务中工作

    我正在使用 Bootstrap 的 AngularJs UI 组件 我想将填写好的模板插入到弹出窗口功能的数据元素之一中 这适用于查找不在 ng repeat 内部的所有元素 如何让 ng repeat 元素在插值模板中工作 我有一个笨蛋h
  • 使用 pdfbox 编辑 pdf 页面

    我如何通过在我已经知道的像素特定位置书写来使用java和pdfbox编辑pdf页面 我尝试过这个 但它会覆盖 PDDocument document null try document PDDocument load new File x
  • 使用什么原语来实现同步关键字?

    当我们使用synchronizedjava中的关键字 究竟使用哪个同步原语 Lock Semaphore Monitor Mutex EDIT JVM如何在本机级别实现锁 在字节码级别 java有monitorenter and monit
  • File.WriteAllText 不保留换行符

    这段代码的输出 string fileDateTime StepsGA DateTime Now ToString dd MM yyyy HH mm ss txt string fname System IO Path Combine Sy
  • 从 URL 获取 blob 并写入文件

    我试图fetch来自服务器的一些二进制数据 MP3 然后将其存储在文件中 var fs require fs var fetch require node fetch fetch audioUrl method GET headers Ac
  • 如何使用 google reader API 标记已读项目?

    我一直在为谷歌阅读器开发一个客户端 一切工作正常 除了我无法编辑条目以添加 加星标 和 已读 等标签 code google com p pyrfeed wiki GoogleReaderAPI 和 www niallkennedy com
  • 为什么在 django 设置中将 debug 设置为 false 会阻止 Heroku 应用程序在开发和生产中加载?

    在我的设置中我已经设置了DEBUG False但这反而在开发和生产中生成了 500 错误 所以我环顾四周 发现了这个 设置 DEBUG False 会导致 500 错误 并尝试了一下 ALLOWED HOSTS www heroku com
  • Python 类是否像其他语言一样支持事件?

    我正在开发我的第一个 Python 项目 并且我已经错过了课堂上的活动 也许它在Python中甚至不被称为事件 但我想在我的类中创建 组 可以向其中添加函数引用 在我的班级中的某个时刻 我的组中的所有函数引用都会执行 这是Python内置的
  • PHP JSON 大整数

    我正在使用 json encode 将我的 php 多维数组转换为输出 json 通常 此函数会将所有值转换为字符串 为了确保整数值作为整数值发送到 javascript 我使用数字检查 json json encode data JSON
  • UPDATE 查询后的 PDO rowCount() 可以显示“未进行更改”和“不存在的行”之间的区别吗?

    我正在使用 PDO 进行更新查询 我想知道我的更新查询是否没有更改数据库中的任何内容 因为 传递的值与数据库中已有的值相同 我知道rowCount 在这种情况下返回0 我尝试更新的行在数据库中不存在 据我所知 rowCount 在这种情况下
  • 如何知道窗口小部件在视口中是否可见?

    我有一个视图 其中包含Scaffold和一个单一的ListView在其主体中 列表的每个子项都是一个不同的小部件 代表视图的各个 部分 部分范围从简单的 TextView 到排列Columns and Rows 我想展示一个Floating
  • Sqlalchemy:从Scrapy项目动态创建表

    我正在使用 sqlalchemy 1 1 和 scrapy 我目前正在使用管道通过 sqlalchemy 将提取的数据存储在 sqllite 表中 我想动态创建一个表来容纳正在抓取的项目 我的静态管道元素如下所示 class SQLlite