【发布时间】:2022-11-19 12:47:44
【问题描述】:
我正在尝试使用 scrapy 从网站上抓取一些数据。我正在使用这些代码行来抓取数据:
`
def parse(self, response):
data = json.loads(response.body)
flat = FlatItem()
for item in data["_embedded"]["estates"]:
flat['flat'] = item['price']
yield flat
`
FlatItem() 包含这样的字段:
`
from scrapy.item import Item, Field
class FlatItem(Item):
flat = Field()
`
然后,我尝试使用如下命令将其粘贴到 postgresql 数据库中:
`
def process_item(self, item, spider):
self.current.execute("""insert into flats(content, tags, author) values(%s)""", (
item["flat"],
))
self.connection.commit()
return item
`
不幸的是,当我尝试运行爬虫时,它给了我一个这样的异常:
2022-11-17 11:32:07 [scrapy.core.scraper] ERROR: Error processing {'flat': 3299000}
追溯(最近一次通话): 文件“/Users/XY/.pyenv/versions/3.10.7/lib/python3.10/site-packages/twisted/internet/defer.py”,第 892 行,在 _runCallbacks current.result = callback( # type: ignore[misc] 文件“/Users/XY/.pyenv/versions/3.10.7/lib/python3.10/site-packages/scrapy/utils/defer.py”,第 285 行,f 返回 deferred_from_coro(coro_f(*coro_args, **coro_kwargs)) 文件“/Users/XY/Library/CloudStorage/Creative/project/pipelines.py”,第 29 行,process_item self.current.execute("""插入平面(内容、标签、作者)值(%s)""", ( psycopg2.errors.InFailedSqlTransaction:当前事务中止,命令被忽略直到事务块结束
几个小时以来,我一直在尝试寻找解决方案,但一无所获。
任何想法?
试图将抓取的数据从 scrapy 传递到 postgresql 数据库,但预计会出现错误。
【问题讨论】:
标签: python postgresql scrapy