写在前面
上次写了python爬虫的各种主流解析库使用方法,这次是主流存储类型的实战。上篇链接
一、目的
这次依然是爬取猫眼电影排行榜,然后用将爬取到的数据分别存储为TXT,JSON,CSV或者分别存储在Mysql,Mongodb,Redis等数据库中。
这次操作和依赖技术相对复杂些,既要掌握基本sql语句,也要配置各种数据库环境。
二、实现
1. 环境依赖
- python3
- request
- mysql
- mongodb
- redis
爬取和解析不是这次的重点,所以一言带过。至于mysql、mongodb、redis的安装与配置将在下面分开来说。2. 爬取和解析函数
1 | # coding = utf-8 |
3. 存成TXT
1 | def write_to_file(content): |
4. 存成JSON
1 | import json |
5. 存成CSV
1 | import csv |
6. 存入mysql
6.1 mysql安装与配置
我的是系统是ubuntu 16.04 LTS,我安装了mysql5.7和可视化工具mysql-workbench。网上有很多安装配置教程这边就不详细说了。
6.2 实现函数
连接数据库要改host='localhost', user='root', password='156352', port=3306
数据
,对应输入你的就行了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#创建数据库
def createDatabase():
db = pymysql.connect(host='localhost', user='root', password='156352', port=3306)
cursor = db.cursor()
cursor.execute('SELECT VERSION()')
data = cursor.fetchone()
print('Database version:', data)
cursor.execute("CREATE DATABASE IF NOT EXISTS MaoYanDB DEFAULT CHARACTER SET utf8")
print("MaoYanDB数据库创建成功")
db.close()
#创建表
def createTableMaoYanDB():
db=pymysql.connect(host='localhost',user='root',password='156352',port=3306,db='MaoYanDB',charset='utf8')
cursor=db.cursor()
sql_table = 'CREATE TABLE IF NOT EXISTS maoyan (id INT NOT NULL, title VARCHAR(255) NOT NULL, ' \
'image VARCHAR(255) NOT NULL, actor VARCHAR(255) NOT NULL, releasetime VARCHAR(255) NOT NULL, ' \
'score FLOAT NOT NULL, PRIMARY KEY(id))'
cursor.execute(sql_table)
print("maoyan表创建成功")
db.close()
#写入
def writeMysql(content):
db=pymysql.connect(host='localhost',user='root',password='156352',port=3306,db='MaoYanDB',charset='utf8')
cursor=db.cursor()
sql_insert='INSERT INTO maoyan(id,title,image,actor,releasetime,score) values(%s, %s, %s, %s, %s, %s)'
cursor.execute(sql_insert,(content))
db.commit()
db.close()
6.3 部分结果一览
7. 存入mongodb
7.1 安装与配置mongodb
我的是系统是ubuntu 16.04 LTS,下面是我mongodb配置的笔记,仅供参考。网上有很多教程。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23sudo python3 -m pip install pymongo #安装python模块
#mongodb官方下载连接
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
在你的/home/用户名/下新建data文件夹,再在data文件下新建db文件夹
mongod --port 27017 --dbpath ~/data/db#不能关,进行以下配置
db.createUser({user: 'admin',pwd:'156352',roles:[{role:'root',db:'admin'}]})
#配置
sudo vi /etc/mongod.conf
sudo service mongod restart
mongodb可视化
https://robomongo.org/download
7.2 实现函数
1 | def writeMongodb(content): |
7.3 部分结果一览
8. 存入redis数据库
8.1 redis的安装与配置
1 | sudo apt-get -y install redis-server |
8.2 实现函数
1 | from redis import StrictRedis |