同样的代码保存成CSV时正常但写入Mysql数据库时错误-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

同样的代码保存成CSV时正常但写入Mysql数据库时错误

2016-02-12 17:11:52 2273 1

用scrpay写爬虫用大众点评练手,同样的代码-o保存成CSV时一切正常,但同时写入Mysql数据库时很多数据重复且不齐全。
screenshot
csv文件一切正常。
screenshot
Mysql里面的数据库一塌糊涂。
同一段代码,完全没有头绪,请高手帮忙。

class MySQLStorePipeline(object):
    """docstring for MySQLstor"""
    def __init__(self):
 
        self.dbpool = adbapi.ConnectionPool('MySQLdb',
            host = 'localhost',
            db = 'dianping',
            user = 'root',
            passwd = 'root',
            cursorclass = MySQLdb.cursors.DictCursor,
            charset = 'utf8',
            use_unicode = True
        )
    def process_item(self, item, spider):
        #print spider
        # run db query in thread pool
        query = self.dbpool.runInteraction(self._conditional_insert, item)
        query.addErrback(self.handle_error)

        return item

    def _conditional_insert(self, tx, item):
        if item.get('user_id'):
         
            tx.execute(\
                "insert into testtable_gz (city, store_name, store_id, book, group_buy, branch, average_spend, style, store_area, store_addr, store_url, comment_url, store_phone, user_id, star, taste, environment, service, comment, comment_date, user_url)\
                values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
 
                (item['city'],
                 item['store_name'],
                 item['store_id'],
                 item['book'],
                 item['group_buy'],
                 item['branch'],
                 item['average_spend'],
                 item['style'],
                 item['store_area'],
                 item['store_addr'],
                 item['store_url'],
                 item['comment_url'],
                 item['store_phone'],
                 item['user_id'], 
                 item['star'], 
                 item['taste'],
                 item['environment'],
                 item['service'],
                 item['comment'],
                 item['comment_date'],
                 item['user_url']
                ))
 
    def handle_error(self, e):
        log.err(e)
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:41:33

    笨方法,pipeline里面不连接MySQL,而是自己生成sql插入语句保存到文件。最后爬完后直接就复制语句去执行。上次遇到你这个问题我就是这么干的

    0 0
相关问答

1

回答

RDS For MySQL 报错InvalidParameters.Malformed

2022-11-01 10:41:26 200浏览量 回答数 1

1

回答

【RDS】RDS for MySQL 连接数满,该如何处理?

2022-01-13 16:30:35 591浏览量 回答数 1

1

回答

RDS for MySQL 连接数满情况的处理

2022-01-07 14:38:49 1193浏览量 回答数 1

0

回答

RDS MySQL同步至阿里云消息队列Kafka版中注意事项的说明是什么?

2021-12-12 23:28:55 350浏览量 回答数 0

0

回答

RDS MySQL同步至阿里云消息队列Kafka版中源库的环境要求的说明是什么?

2021-12-12 23:28:54 315浏览量 回答数 0

1

回答

RDS MySQL产品优势是什么?

2021-12-12 13:28:20 181浏览量 回答数 1

1

回答

RDS MySQL业务模型是什么?

2021-12-12 13:26:08 161浏览量 回答数 1

1

回答

【RDS】RDS MySQL报错

2021-11-12 16:06:38 1263浏览量 回答数 1

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL 连接数满情况的处理

2018-09-26 23:36:07 2134浏览量 回答数 0

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL 报错: SELECT command denied to user 'username'@

2018-09-24 22:10:02 2057浏览量 回答数 0
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
冬季实战营第三期:MySQL数据库进阶实战
立即下载
OPTIMIZING SPARK DEPLOYMENTS FOR CONTAINERS: ISOLATION, SAFETY, AND PERFORMANCE
立即下载
阿里云数据库案例集下载
立即下载