数据存储
一、媒体文件
两种方式:
- 只获取文件Url链接
- 直接把源文件下载下来(爬一些图片可以存储下来)
使用媒体文件所在url链接直接引用它的优点:
爬虫运行的更快,耗费流量更少,因为只要链接,不需要下载文件
可以节约存储空间
存储url代码容易实现,不需要实现文件下载代码
不下载文件,可以降低目标主机的负载
不过这么做也有一些缺点:
这些内嵌在你的网站或应用中的外站url链被称为盗链,而每个网站都会实施防盗链措施
爬网站的一个图片,存到 E:盘 :
from urllib.request import urlretrieve,urlopen
from bs4 import BeautifulSoup
html = urlopen(" http://pythonscraping.com")
bsobj = BeautifulSoup(html,"html.parser")
imageLocation = bsobj.find("a",{"id":"logo"}).find("img")["src"]
urlretrieve(imageLocation,"e://logo.jpg")
二、把数据存到CSV
CSV(逗号分隔值):
是存储表格数据的常用文件格式。每一行都用一个换行符分隔,列与列之间用逗号分隔(因此也叫“逗号分隔值”)。CSV文件还可以用Tab字符或其他字符分割行,但是不太常见,用的不多。
Python的csv库可以非常简单的修改CSV文件,甚至从零开始创建一个CSV文件:
import csv
csvFile = open(" E:\\python程序文件\\csv.txt","w+" )
try:
writer = csv.writer(csvFile)
writer.writerow(('number','number plus 2','number times 3'))
for i in range(10):
writer.writerow((i,i+2,i*2))
finally:
csvFile.close()
读取文档
一、纯文本
读取纯文本是最简单的一种,唯一需要注意的就是 编码 和 解码 的问题
判断是否为纯文本,一定是以 “.txt” 结尾的
from urllib.request import urlopen
textPage = urlopen(" ")
print(str(textPage.read(),'utf-8'))
二、CSV
python中的csv库可以用来读取csv文件,不过主要面向本地文件
from urllib.request import urlopen
from io import stringIO
import csv
data = urlopen(" .csv")\.read().decode("ascii",'ignore')
dataFile = stringIO(data)
csvReader = csv.reader(dataFile)
for row in csvReader:
print(row)