python - MSSQL 的 Scrapy 管道

标签 python sql web-scraping scrapy

我正在为 Python scrapy 编写自己的管道:

from scrapy.exceptions import NotConfigured
from scrapy.exceptions import DropItem
import pymssql

from slybot.item import create_item_version

class SQLStore(object):
  def __init__(self):
    self.conn = pymssql.connect(host='XXXXXX', user='sa', password='1timep', database='DBSample')
    self.cursor = self.conn.cursor()
    #log data to json file


def process_item(self, item, spider): 

    try:
        self.cursor.execute("INSERT INTO Movie(Description, Location,Title) VALUES (%s, %s, %s)", (item['Description'], item['Location'], item['Title']))
        self.conn.commit()

    except pymssql.Error, e:
        print ("error")

        return item

我正在尝试将值插入 SQL Server。

以下是我的蜘蛛设置:

ITEM_PIPELINES = {'slybot.dupefilter.SQLStore' : 100}

工作正常。当我在 Scrapyd 中提交我的蜘蛛时,我看到下面的日志文件

2015-01-19 16:07:57+0530 [scrapy] INFO: Enabled item pipelines: SQLStore

从日志文件中我看到我的蜘蛛正在使用SQLStore pipline。

但是值不会加载到 SQL Server 中。我能够以 json 格式查看日志文件中的内容。

出了什么问题。问题是什么?

有人可以帮我吗?谢谢。

最佳答案

代码没有正确缩进。 process_itemSQLStore 类定义处于同一级别,因此它不是类的方法,也不会被调用。缩进:

import pymssql

from slybot.item import create_item_version


class SQLStore(object):
    def __init__(self):
        self.conn = pymssql.connect(host='XXXXXX', user='sa', password='1timep', database='DBSample')
        self.cursor = self.conn.cursor()

    def process_item(self, item, spider):
        try:
            self.cursor.execute("INSERT INTO Movie(Description, Location,Title) VALUES (%s, %s, %s)",
                                (item['Description'], item['Location'], item['Title']))
            self.conn.commit()
        except pymssql.Error, e:
            print ("error")

        return item

关于python - MSSQL 的 Scrapy 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022972/

相关文章:

python - df.style.apply 在显示中居中显示多索引值

mysql - 防止同一个人重复申请/个人资料?

json - Excel VBA/JSON 抓取 UPS 跟踪交付

sql - 如何将日期时间的转换存储在可以使用 ORDER BY 的新列名的新列中?

sql - Oracle to_date,从 MM-DD-YYYY 中减去 DDMMYY

php - 将代理与 PHP 简单 HTML DOM 解析器结合使用

python - python 抓取和剥 ionic 标签

python - Python 中 2 的幂的列表理解因 numpy 数组而失败

python - 理解 Django 中的 URL 模式

python - 在满足某些条件的情况下(在 Python 中)遍历 DataFrame 并计算 DataFrame 中出现次数的最快方法是什么?