数据存储之文件存储(一)-JSON文件存储

原创不易,转载前请注明博主的链接地址:Blessy_Zhu https://blog.csdn.net/weixin_42555080
本次代码的环境:
运行平台: Windows
Python版本: Python3.x
IDE: PyCharm

一 概述

数据存储是爬虫的一个很重要的部分,爬虫爬出来的数据要不存到文件中,要不就存到数据库中。基于这两个存储思想,保存形式可以动作多样,文件存储有:TXT、JSON、CSV等;数据库存储,如关系型数据库SQLService,非关系型数据库MongoDB、Redis等。这篇文章要介绍的内容是文件存储的TXT存储。其实这部分内容在爬虫中最基本的存储方式,因为把数据保存到TXT文件中的方法非常简单,并且TXT文件几乎在任何平台上都兼容。当然,它的缺点就是:内容都存到一个文本文件中,不利于检索,如果对检索要求不高的内容,可以采取此方式进行存储。
数据存储之文件存储(一)-JSON文件存储

详细讲解

比如这篇博文的内容:Python爬虫之BeautifulSoup+Requests爬取喜欢博主的全部博文(七)前面先是通过requests将源代码down下来,然后通过BeautifulSoup把相关的文本信息找到,其中写为TXT文件的函数代码如下:

def write(self):
       folder_path = './CSDN'
       i = 0
       if os.path.exists(folder_path) == False:
           os.makedirs(folder_path)
       for herf in self.href_list:
           path = folder_path+'/{}'.format(i+1)
           txtPath = path + '/{}'.format(i + 1) + '.txt'
           if os.path.exists(path) == False:
               os.makedirs(path)
               open(txtPath, 'w')
           print(herf)
           with open(txtPath, 'a', encoding='utf-8') as f:
               f.write(self.article_content)
               f.close()

写到TXT文件的示意图如图1所示:
 


数据存储之文件存储(一)-JSON文件存储
图1

因为主要为 了演示文件保存的方式,所以大部分内容都已经省略,保存为TXT文件,这个例子是利用Python提供的open()方法打开一个文本文件,用的是一个简化写法,如果是不简化是file = open("XX.txt","a",encoding = "utf-8") file.write() file.close(),获取一个 文件操作对象,这里赋值为file,接着利用file对象的write()方法将提取的内容写人文件,最后调用close()方法将其关闭,这样抓取的内容即可成功写人文本中了。open()方法的第一个参数即要保存的目标文件名称,第二个参数为a,代表以追加方式写人到文本。另外,还指定了文件的编码为utf-8最后,写人完成后,还需要调用close()方法来关闭文件对象。

三 打开方式

在刚才的实例中,open()方法的第二个参数设置成了a,这样在每次写人文本时不会清空源文件而是在文件末尾写人新的内容,这是一种文件打开方式。 关于文件的打开方式,其实还有其他几种,这里简要介绍一下。

打开方式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
rb 以二进制只读方式打开一个文件。文件指针将会放在文件的开头。
r+ 以读写方式打开一个文件。文件指针将会放在文件的开头。
rb+ 以二进制读写方式打开-一个文件。文件指针将会放在文件的开头
w 以写人方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
wb 以二进制写人方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
W+ 以读写方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
wb+ 以二进制读写格式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
a 以追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件结尾。也就是说,新的内容将会被写人到已有内容之后。如果该文件不存在,则创建新文件来写人
ab 以二进制追加方式打开一个文件。如果该文件已存在,则文件指针将会放在文件结尾。也就是说,新的内容将会被写人到已有内容之后。如果该文件不存在,则创建新文件来写人
a+ 以读写方式打开一个文件。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,则创建新文件来读写。
ab+ 以二进制追加方式打开一 个文件。如果该文件已存在,则文件指针将会放在文件结尾。

四 总结

这篇文章是数据存储的引子,主要就是讲了TXT文件的存储以及一些文件的打开方式。在开始介绍了数据存储的基本内容,以及TXT文件的基本内容,内容相对简单。以上内容参考资料:崔庆才《Python3 网络爬虫开发实战》,夏敏捷《Python程序设计-从基础到开发》,[挪]芒努斯·利·海特兰德(Magnus Lie Hetland)《Python基础教程第3版 Python编程从入门到实践 》,并对以上作者表示感谢。这篇文章就到这里了,欢迎大佬们多批评指正,也欢迎大家积极评论多多交流。


数据存储之文件存储(一)-JSON文件存储