def open_spider(self, spider):
"""
called when spider is opened.
do something before pipeline is processing items.
example: do settings or create connection to the database.
"""
try:
spider.logger.debug("trying to connect mysql")
self.db = MySQLdb.connect(host=self.mysql_ip, port=self.mysql_port,
user=self.mysql_user,
passwd=self.mysql_password,
db=self.mysql_database)
except MySQLdb.DatabaseError:
spider.logger.error("can not connect mysql")
raise MySQLdb.DatabaseError
return
python类DatabaseError()的实例源码
def execute(self,sql):
'''exec sql insert'''
ret = 0
try:
cursor = self.conn.cursor()
ret = cursor.execute(sql)
except (AttributeError,MySQLdb.OperationalError, MySQLdb.DatabaseError):
logger.error(traceback.format_exc())
logger.error("sql:{0}".format(sql))
self.connect()
if self.conn:
cursor = self.conn.cursor()
ret = cursor.execute(sql)
return ret