数据存储用解析库解析出数据之后,接下来就是存储数据了。保存的形式可以多种多样,最简单的形式是直接保存为文本文件,如TXT、JSON、CSV等。另外,还可以保存到数据库中,如关系型数据库MySQL,非关系型数据库MongoDB、Redis等。TXT文件存储将数据保存到TXT文本的操作非常简单,而且TXT文本几乎兼容任何平台,但是这有个缺点,那就是不利于检索。所以如果对检索和数据结构要求不高,追求方便第一的话,可以采用TXT文本存储。本节中,我们就来看下如何利用Python保存TXT文本文件。下面,我们尝试保存知乎上“发现”页面的“热门话题”部分,将其问题和答案统一保存为文本形式。我们用一个基本示例来展示我们的结果,首先我们可以用requests将网页源代码获取下来,然后利用pyquery解析库来解析,接下来将提取的标题,回答者、回答保存到文本,代码如下:这里主要是为了演示文件保存的方式,因此requests异常处理部分在此省去。首先,用requests提取知乎的发现页面,然后将热门话题的问题、回答者、答案全文提取出来,然后利用python提供的open()方法打开一个文本文件,获取一个文件的操作对象,这里赋值为file,接着利用file对象的write()方法将提取的内容写入文件,最后调用close()方法将其关闭,这样抓取的内容即可成功写入文本中了。运行程序之后,我们发现在目录中生成了一个explore.txt的文件,其内容如下:这样热门回答的内容就被保存为文本形式了。这里open()方法的第一个参数即要保存的目标文件名称,第二个参数为a,代表以追加方式写入到文本。另外,我们还指定了文件的编码为utf-8。最后,写入完成后,还需要调用close()方法来关闭文件对象。打开方式在刚才的实例中,open()方法的第二个参数设置为了a,这样在每次写入文本时不会清空源文件,而是在文件末尾写入新的内容,这是一种文件的打开方式,其实在前面介绍python基本用法中的文件操作我们就有所涉及了。这里再回顾一下相关的知识:r:以只读方式打开文件,文件的指针会放在文件的开头。这是默认模式。rb:以二进制只读方式打开一个文件,文件的指针将会放在文件的开头。r+:以读写方式打开一个文件,文件指针将会放在文件的开头。rb+:以二进制读写方式打开一个文件,文件指针将会放在文件的开头。w:以写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。wb:以二进制写入方式打开一个文件,如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。w+:以读写方式打开一个文件,如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。wb+:以二进制读写格式打开一个文件,如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。a:以追加方式打开一个文件,如果该文件已存在,文件指针将会放在文件结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件写入。ab:以二进制追加方式打开一个文件,如果该文件已经存在,文件指针会放在文件末尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件写入。a+:以读写方式打开一个文件,如果该文件已经存在,文件指针将会放在文件的末尾。文件打开时将会是追加模式。如果该文件不存在,则创建新文件来读写。ab+:以二进制追加方式打开一个文件。如果该文件已经存在,则文件指针将会放在文件末尾。如果该文件不存在,则创建新文件用于读写。简化写法另外,文件写入还有一种简写方式,那就是使用withas语法。在with控制块结束时,文件会自动关闭,所以就不需要再调用close()方法了。这种保存方式我们之前也有介绍过。我们再来回顾一下:如果想保存时将原文清空,那么可以将第二个参数改为w,代码如下:上面便是利用Python将结果保存为TXT文件的方法,这种方法简单易用,操作高效,是一种最基本的保存数据的方式。
转载请注明:http://www.aierlanlan.com/grrz/7972.html