用于 MSSQL 的 Scrapy 管道
Scrapy pipeline for MSSQL
我正在为 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 服务器。
下面是我的蜘蛛设置:
ITEM_PIPELINES = {'slybot.dupefilter.SQLStore' : 100}
它工作正常。当我在 Scrapyd 中提交我的蜘蛛时,我看到了下面的日志文件
2015-01-19 16:07:57+0530 [scrapy] INFO: Enabled item pipelines: SQLStore
从日志文件中我看到我的蜘蛛正在使用 SQLStore
管道。
但是 值没有加载到 SQL 服务器 中。我能够以 json 格式查看日志文件中的内容。
出了什么问题。问题是什么?
谁能帮帮我?谢谢。
代码缩进不正确。 process_item
与 SQLStore
class 定义处于同一级别,因此它不是 class 的方法并且永远不会被调用。缩进:
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 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 服务器。
下面是我的蜘蛛设置:
ITEM_PIPELINES = {'slybot.dupefilter.SQLStore' : 100}
它工作正常。当我在 Scrapyd 中提交我的蜘蛛时,我看到了下面的日志文件
2015-01-19 16:07:57+0530 [scrapy] INFO: Enabled item pipelines: SQLStore
从日志文件中我看到我的蜘蛛正在使用 SQLStore
管道。
但是 值没有加载到 SQL 服务器 中。我能够以 json 格式查看日志文件中的内容。
出了什么问题。问题是什么?
谁能帮帮我?谢谢。
代码缩进不正确。 process_item
与 SQLStore
class 定义处于同一级别,因此它不是 class 的方法并且永远不会被调用。缩进:
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