爬网站采用单线程时候太慢,采用线程池多线程爬的过程中。db插入需要
scoped_session
直接发代码
class DBEngine(object):
def __init__(self):
self.engine = create_engine('sqlite:///train.sqlite', echo = False)
# db_session = sessionmaker(autocommit=False,autoflush=False,bind=self.engine)
# self.session = db_session()
self._dbSession = scoped_session(
sessionmaker(
autocommit=False,
autoflush=False,
bind=self.engine
)
)
def closeDB(self):
self._dbSession().close()
def saveTrainCode( self , code ):
dbc = self.getTrainCodeIdWithCode( code )
if not dbc:
dbc = DBTrainCode( code )
self._dbSession().add( dbc )
self._dbSession().commit()
def ge