在对于爬取数量数量较少时,我们可以将爬虫数据保存于CSV文件或者其他格式的文件中,既简单又方便,但是如果需要存储的数据量大,又要频繁访问这些数据时,就应该考虑将数据保存到数据库中了。目前主流的数据库有关系性数据库MySQL,以及非关系性数据库MongoDB和Redis等。这里我先来讲讲MySQL。
1、MySQL数据库
MySQl数据库是一个中小型关系型数据库,应用及其广泛,开源,高效,免费,可移植性好,现在有很多大厂还是在广泛使用MySQL数据库。
1.关系型数据库概述
关系型数据库,是建立在关系模型基础上的数据库,简单的讲,它由多张互相联结的二位表格组成,每一行是一条记录,每一列是一个字段,而表就是某个实体的集合,它展现的形式类似于EXCEL中常见的表格。
像SQLite,MySQL,Oracle,SQL Server DB2等都属于关系型数据库。
2.下载和安装MySQL数据库
这里常规的安装方法我不再赘述,如果后续有要求,我会补上。安装本地测试集成环境
3、数据库管理工具Navicat
MySQL安装好之后,下面就可以建立保存爬虫数据的数据库了。如果对MySQL数据库不是很精通,甚至连SQL语句都不会怎么写,那么Navicat绝对可以帮上忙。这是一个强大的数据库管理和设计工具,支持Windows,Mac OS,Linux系统。通过直观的GUI(图形用户界面),可以让用户方便的管理MySQL,Oracle,SQL Server,Mongo DB等数据库。
3.1 Navicat下载和安装
进入Navicat官网下载Navicat for MySQL,下载地址为:Navicat下载地址
3.2 连接MySQL数据库服务器
Navicat安装完成后,运行 Navicat。首先完成与MySQL数据库服务器的连接。单机“连接”按钮,在弹出的“新建连接”对话框中输入MySQL配置信息,如连接名为mysql(名称自定义),密码为安装MySQL时设置的密码,其余配置默认设置,单击“连接测试”按钮,确保连接成功,最后单机“确定”按钮,完成与MySQl服务器的连接。
3.3 新建数据库
与MySQL数据库服务器建立连接后,就可以操作MySQL数据库了。新建一个数据库,用于存储爬取的信息。右击连接名mysql,在弹出的快捷菜单中,选择“新建数据库”命令,输入数据库名,设置字符集和排序规则,单机“确定”。
3.4 新建表
在新建的数据库crawler中新建一个用于存储爬取测试的表test。字段这里根据爬取的内容设置,比如:id的设置为int型,主键,不是null,自动递增,其余字段均为varchar型。文章来源:https://www.toymoban.com/news/detail-407435.html
Python爬虫之数据写入文章来源地址https://www.toymoban.com/news/detail-407435.html
#写入到Excel
import xlsxwriter
#创建文件,并添加一个工作表
workbook=xlsxwriter.Workbook('demo.xlsx')
worksheet=workbook.add_worksheet()
#在指定位置写入数据
worksheet.write("A1","这是A1的数据")
worksheet.write("A2","这是A2的数据")
#关闭表格文件
workbook.close()
#爬取便民查询网常用账号,并写入到Excel
import re
import requests
import xlsxwriter
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Ap\
pleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Sa\
fari/537.36"
}
response=requests.get("http://changyongdianhuahaoma.51240.com/",headers=headers).text
pat1=r'<tr bgcolor="#EFF7F0">[\s\S]*?<td>(.*?)</td>[\s\S]*?<td>[\s\S]*?</td>[\s\S]*?</tr>'
pat2=r'<tr bgcolor="#EFF7F0">[\s\S]*?<td>[\s\S]*?</td>[\s\S]*?<td>(.*?)</td>[\s\S]*?</tr>'
pattern1=re.compile(pat1)
pattern2=re.compile(pat2)
data1=pattern1.findall(response)
data2=pattern2.findall(response)
resultlist=[]
#创建表格
workbook=xlsxwriter.Workbook("demo2.xlsx")
worksheet=workbook.add_worksheet()
for i in range(0,len(data1)):
resultlist.append(data1[i]+data2[i])
#写入数据
worksheet.write("A"+str(i+1),data1[i])
worksheet.write("B"+str(i+1),data2[i])
print(resultlist)
# 关闭表格资源,这样才会完成创建
workbook.close()
#爬取便民查询网常用账号,并写入到Mysql
#注意:需要提前创建对应字段的数据库
import re
import requests
import pymysql
#建立数据库连接
db=pymysql.Connect(host="localhost",port=3306,user="root",passwd="AA123456",db="spider_test",charset="utf8")
cursor=db.cursor()
#爬取数据
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Ap\
pleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Sa\
fari/537.36"
}
response=requests.get("http://changyongdianhuahaoma.51240.com/",headers=headers).text
#处理数据
pat1=r'<tr bgcolor="#EFF7F0">[\s\S]*?<td>(.*?)</td>[\s\S]*?<td>[\s\S]*?</td>[\s\S]*?</tr>'
pat2=r'<tr bgcolor="#EFF7F0">[\s\S]*?<td>[\s\S]*?</td>[\s\S]*?<td>(.*?)</td>[\s\S]*?</tr>'
pattern1=re.compile(pat1)
pattern2=re.compile(pat2)
data1=pattern1.findall(response)
data2=pattern2.findall(response)
#清空数据库原来的内容
sqll="delete from tel"
cursor.execute(sqll)
db.commit()
resultlist=[]
for i in range(0,len(data1)):
resultlist.append(data1[i]+data2[i])
sql="insert into tel(name,phone) values('"+data1[i]+"','"+data2[i]+"')"
cursor.execute(sql)
print(resultlist)
db.commit()
db.close()
到了这里,关于爬虫之数据库存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!