gpt4 book ai didi

python - scrapy + adbapi = 属性错误 : 'module' object has no attribute 'DictCursor'

转载 作者:行者123 更新时间:2023-11-28 19:23:46 25 4
gpt4 key购买 nike

我有一个 CrawlSpider,我设置了一个项目管道,我试图通过 MySQLdb 坚持下去。我到处搜索,发现的大多数样本至少有 6 个月的历史,所有样本都以相同的方式使用 adbapi。当我尝试使用相同的格式时,出现以下错误:

AttributeError: 'module' object has no attribute 'DictCursor'

我没有看到我在这里做错了什么,但我是 Python 的新手,也是 scrapy 的新手,所以我完全有可能忽略了一些简单的事情。

from twisted.enterprise import adbapi
from scrapy import log

import MySQLdb.cursors

class InventoryPipeline(object):
def __init__(self):
self.pool = adbapi.ConnectionPool('MySQLdb',
db='inventory',
user='root',
passwd='',
cursorClass=MySQLdb.cursors.DictCursor,
charset="utf8",
use_unicode=True
)


def process_item(self, item, spider):
query = self.pool.runInteraction(self._insert_record, item)
query.addErrback(self._handle_error)
return item


def _insert_record(self, tx, item):
tx.execute("select * from content where url = %s", (item['url']))
result = tx.fetchone()
if result:
log.msg("url already in database", level=log.INFO)
else:
tx.execute("insert into content (url, title, link_content, main_content, header) values (%s, %s, %s, %s, %s)",
(item['url'], item['title'], item['link_content'], item['main_content'], item['header']))
log.msg("Item stored in db: %s" % item, level=log.INFO)
return item


def _handle_error(self, e):
log.err(e)

最佳答案

我也遇到过这个问题,我解决了。

你可以试试这个

从 MySQLdb.cursors 导入 DictCursor

并将 cursorClass 更改为 "cursorClass=DictCursor"

它在我的电脑上运行,我希望它也能帮助你和其他人

关于python - scrapy + adbapi = 属性错误 : 'module' object has no attribute 'DictCursor' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com