爬网站采用单线程时候太慢,采用线程池多线程爬的过程中。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 getTrainCodeIdWithCode( self , code ):
dbc = self._dbSession().query( DBT

本文探讨了如何在使用SQLAlchemy进行数据库操作时,有效地应对多线程爬虫的数据存储问题。通过实例代码展示如何在多线程环境中确保数据的正确性和一致性。
最低0.47元/天 解锁文章
224

被折叠的 条评论
为什么被折叠?



