如何通过Scrapy adbapi优化Python爬虫的数据库写入效率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计702个文字,预计阅读时间需要3分钟。
目录+一:twisted中的adbapi+1.1:两个主要方法+1.2:使用实例+二:结合scrapy中的pipelines+1.1:twisted的adbapi+1.2:数据库pymysql的commit()和execute()在提交数据时,都是同步提交至数据库,由scrapy框架管理
目录
- 一:twisted中的adbapi
- 1.1 两个主要方法
- 1.2 使用实例
- 二:结合scrapy中的pipelines
一:twisted中的adbapi
数据库pymysql的commit()和execute()在提交数据时,都是同步提交至数据库,由于scrapy框架数据的解析和异步多线程的,所以scrapy的数据解析速度,要远高于数据的写入数据库的速度。如果数据写入过慢,会造成数据库写入的阻塞,影响数据库写入的效率。
使用twisted异步IO框架,实现数据的异步写入,通过多线程异步的形式对数据进行写入,可以提高数据的写入速度。
1.1 两个主要方法
adbapi.ConnectionPool:
创建一个数据库连接池对象,其中包括多个连接对象,每个连接对象在独立的线程中工作。
本文共计702个文字,预计阅读时间需要3分钟。
目录+一:twisted中的adbapi+1.1:两个主要方法+1.2:使用实例+二:结合scrapy中的pipelines+1.1:twisted的adbapi+1.2:数据库pymysql的commit()和execute()在提交数据时,都是同步提交至数据库,由scrapy框架管理
目录
- 一:twisted中的adbapi
- 1.1 两个主要方法
- 1.2 使用实例
- 二:结合scrapy中的pipelines
一:twisted中的adbapi
数据库pymysql的commit()和execute()在提交数据时,都是同步提交至数据库,由于scrapy框架数据的解析和异步多线程的,所以scrapy的数据解析速度,要远高于数据的写入数据库的速度。如果数据写入过慢,会造成数据库写入的阻塞,影响数据库写入的效率。
使用twisted异步IO框架,实现数据的异步写入,通过多线程异步的形式对数据进行写入,可以提高数据的写入速度。
1.1 两个主要方法
adbapi.ConnectionPool:
创建一个数据库连接池对象,其中包括多个连接对象,每个连接对象在独立的线程中工作。

