天天看点

mongodb 多线程_Python多线程爬虫与多种数据存储方式实现

1. 多进程爬虫

  对于数据量较大的爬虫,对数据的处理要求较高时,可以采用python多进程或多线程的机制完成,多进程是指分配多个CPU处理程序,同一时刻只有一个CPU在工作,多线程是指进程内部有多个类似"子进程"同时在协同工作。python中有多种多个模块可完成多进程和多线程的工作,此处此用multiprocessing模块完成多线程爬虫,测试过程中发现,由于站点具有反爬虫机制,当url地址和进程数目较多时,爬虫会报错。

2. 代码内容

mongodb 多线程_Python多线程爬虫与多种数据存储方式实现

3. 爬取的数据存入到MongoDB数据库

mongodb 多线程_Python多线程爬虫与多种数据存储方式实现

4. 插入至MySQL数据库

  将爬虫获取的数据插入到关系性数据库MySQL数据库中作为永久数据存储,首先需要在MySQL数据库中创建库和表,如下:

1. 创建库

MariaDB [(none)]> create database qiushi;

Query OK, 1 row affected (0.00 sec)

2. 使用库

MariaDB [(none)]> use qiushi;

Database changed

3. 创建表格

MariaDB [qiushi]> create table qiushi_info(id int(32) unsigned primary key auto_increment,username varchar(64) not null,level int default 0,laugh_count int default 0,comment_count int default 0,content text default '')engine=InnoDB charset='UTF8';

Query OK, 0 rows affected, 1 warning (0.06 sec)

MariaDB [qiushi]> show create table qiushi_info;

+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table |

+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| qiushi_info | CREATE TABLE `qiushi_info` (

`id` int(32) unsigned NOT NULL AUTO_INCREMENT,

`username` varchar(64) NOT NULL,

`level` int(11) DEFAULT '0',

`laugh_count` int(11) DEFAULT '0',

`comment_count` int(11) DEFAULT '0',

`content` text,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

写入到MySQL数据库中的代码如下:

mongodb 多线程_Python多线程爬虫与多种数据存储方式实现

5. 将爬虫数据写入到CSV文件

  CSV文件是以逗号,形式分割的文本读写方式,能够通过纯文本或者Excel方式读取,是一种常见的数据存储方式,此处将爬取的数据存入到CSV文件内。

将数据存入到CSV文件代码内容如下:

mongodb 多线程_Python多线程爬虫与多种数据存储方式实现