我有一个抓取工具,可以从多个网站获取数据并将信息更新到mysql表中。我正在使用scrapy编写爬虫。爬虫将插入/更新大量列。是否可以批量插入/更新scrapy中的项目?
答案 0 :(得分:0)
不确定你在问什么,但你可以在scrapy项目的pipelines.py中设置一个mysql管道,如下所示:
class SQL(object):
def __init__(self):
self.conn = MySQLdb.connect(user='user', passwd='pass', db='DB', host='servername', charset='utf8')
self.cursor = self.conn.cursor()
def process_item(self, item, spider):
try:
self.cursor.execute('INSERT INTO table (month, year, date) VALUES (%s,%s,%s)', (item['month'], item['year'], item['date']))
self.conn.commit()
except MySQLdb.Error, e:
print item
print "Error %d: %s" % (e.args[0], e.args[1])
return item
然后在settings.py中启用它
ITEM_PIPELINES = {'PROJECTNAME.pipelines.SQL': 300}