python爬虫基础-储存数据

使用python储存数据

一、前言

我们从互联网上采集到大量的数据,为了方便管理和分析我们需要将数据按照一个的格式存储起来,我们分析的数据常见格式分为两大类:第一,纯文本数据;第二、媒体数据。对于纯文本数据,我们经常将其储存为txt文档,csv文档以及储存到MySQL数据库中;对于其他如图片、视频、各种文档等媒体文件,我们就将其直接按原格式储存。下面使用举例的方式来介绍各种格式数据的存储。

二、储存文本信息

1、储存为txt文档

使用open()函数以"w"写入的方式打开一个txt文档,如果文件不存在则python会创建一个新的文档。然后写入数据即可。

file=open("test.txt","w")
file.write("new line")
file.close()

2、储存为csv文档

将python储存为csv文档时,需要使用csv模块,具体代码如下:

import csv
csvFile=open("test.csv","w+")
try:
    writer=csv.writer(csvFile)
    writer.writerow(("number","number*2","number*number"))
    for i in range(10):
        writer.writerow((i,i*2,i*i))
finally:
    csvFile.close()

3、储存到mysql数据库中

如果我们采集到的数据是结构化的数据,那么我们可以将其存储到mysql数据库中,方便管理和使用这些数据。我们需要使用第三方模块PyMySQL,其下载地址为传送门。具体用法如下代码所示:

import pymysql
conn=pymysql.connect(host='11*.**3.2**.***',charset='utf8',user='***',passwd='****',db='mysql')
cur=conn.cursor()
cur.execute("USE ****")
#读取信息
cur.execute("select * from cars where id=1")
print(cur.fetchone())
# 写入信息
cur.execute("INSERT INTO cars (carName,carBrand) VALUES("思域","本田")")
cur.close();
conn.close();

三、储存媒体信息

储存媒体文件时需要引入urlretrieve模块,使用这个模块可有使得我们在下载媒体文件时非常方便。urlretrieve(媒体的url,文件名)具体使用如一下代码所示:

1,保存图片

from urllib.request import urlretrieve
html = urlopen("http://www.pythonscraping.com")
bsObj=BeautifulSoup(html)
imageLocation=bsObj.find("a",{"id":"logo"}).find("img")["src"]
urlretrieve(imageLocation,"logo.jpg")

2、保存视频

html=urlopen("http://tieba.baidu.com/p/5780097813")
bsObj=BeautifulSoup(html.read())
#print(bsObj)
videoLocation=bsObj.find("div",{"id":"post_content_120637727072"}).find("div",{"class":"video_src_wrapper"}).find("embed")["data-video"]
print(videoLocation)
urlretrieve(videoLocation,"video.mp4")

3、提取文档

urlretrieve("http://bkzs.hfut.edu.cn/upload/xxnr/1529564983510.xls","自主招生入围合格名单.xls")

猜你喜欢

转载自blog.csdn.net/hfutzhouyonghang/article/details/80955127
今日推荐