我正在使用scrapy来抓取信息并存储到mysql中。
一些相关的代码是:
def _conditional_insert(self, tx, item):
if item.get('app_name'):
tx.execute("""
insert into af_appinfo (app_name, app_size, app_data_install, app_icon_url, app_download_url, app_desc)
values (%s, %s, %s, %s, %s, %s)""",
(item['app_name'], item['app_size'], item['app_data_install'], item['icon_url'],item['app_url'], item['app_desc']))
项目的定义是:
from scrapy.item import Item, Field
class WdjcrawlItem(Item):
icon_url = Field()
app_url = Field()
app_name = Field()
app_desc = Field()
app_size = Field()
app_data_install = Field()
抓取工具运行良好。但是在使用mysql时会引发异常。例外信息是:
_mysql_exceptions.OperationalError: (1241, 'Operand should contain 1 columns)
有关此查询的任何错误?
答案 0 :(得分:0)
你是否在cmdline上打印了scapy的输出?因为它 听起来你想要在你的代码/ db只期望的时候放入多列数据 一列。你可以发布你想要传入的scapy得到的输出 数据库?
亲切的问候,德克
答案 1 :(得分:-2)
关于数据类型的错误。匹配表中每列与其对应项之间的类型。