gpt4 book ai didi

Python Scrapy 在每个 process_item 上维护 SSH MySQL 连接

转载 作者:行者123 更新时间:2023-11-29 17:07:55 25 4
gpt4 key购买 nike

我对 Scrapy 和 Python 还很陌生。

我能够使用 SSH 凭据连接到我的远程数据库对,但是...

希望防止在每个被抓取的项目上发生此错误。

Error: 2055: Lost connection to MySQL server at '127.0.0.1:3306', system error: 10053 An established connection was aborted by the software in your host machine

下面是我的 MySQL 管道对象

import mysql.connector
import sshtunnel

class MySQLStorePipeline(object):

def __init__(self):
with sshtunnel.SSHTunnelForwarder(
('13.***.***.***', 22),
ssh_username='***',
ssh_password='***',
remote_bind_address=('db1.prod.***.***.net.***', 3306),
local_bind_address=('127.0.0.1', 3306)
) as tunnel:

self.dbcon = mysql.connector.connect(
host='127.0.0.1',
port=3306,
user='***',
database='***',
password='***',
charset='utf8'
)
self.cursor = self.dbcon.cursor()

def process_item(self, item, spider):
try:
tables = self.cursor.execute('SHOW TABLES')
print tables.fetchall()

self.dbcon.commit()
except mysql.connector.Error as err:
print('Error: {}'.format(err))

return item

我只是不知道如何在process_item函数内维护数据库连接

最佳答案

您正在使用 with ... 这就是您出现此行为的原因 SSH tunnel from Python is closing automatically

关于Python Scrapy 在每个 process_item 上维护 SSH MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52003829/

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