文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

xnznx3

http://www78564.xrbh.cn/comxnznx3/

相关列表
文章列表
  • 暂无文章
推荐文章
Python爬虫(四) —— 将爬取到的数据进行存储
发布时间:2025-01-02        浏览次数:3        返回列表

Python爬虫(四) —— 将爬取到的数据进行存储


  用解析器解析出数据之后,接下来就是存储数据了。保存的形式有很多,最简单的形式是直接保存为文本文件,如TXT、JSON、csv等。另外,还可以将这些数据保存到数据库中。

python中所有open()打开一个文件,文件的打开有很多模式

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

TXT 文本的操作非常简单,且其几乎兼容任何平台,但是它有个缺点,那就是不利于检索。

 

  事实上,一般来讲,文件写入这个动作还有一种简化写法,就是使用with as语法,在with 控制块结束时,文件会自动关闭,所以就不需要再调用close()方法了。

 
 

读取json数据

  Python为我们提供了简单易用的JSON库来实现JSON文件的读写操作,我们可以调用JSON库的loads()方法将JSON文本字符串转为JSON对象,也可以通过dumps()方法将JSON对象转为文本字符串。

json内的数据需要使用双引号包围,不能使用单引号。

 

当然,也可以从文件读取json字符串信息

 

输出json数据

 

data.json文件中的内容如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tr2PR6Kl-1640339861361)(https://note.youdao.com/yws/public/resource/f8e5908c0721dddb3fd530cf29cb1b8e/xmlnote/WEBRESOURCE5c55acb5ef08952f68989ff660a19fed/42821 “”)]

  Csv(Comma-Separated Values,逗号分隔值或字符分隔值),其文件以纯文
本形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分隔。每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。不过所有记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。它比Excel文件更加简介,XLS是电子表格,它包含了文本、数值、公式和格式等内容,而csv 中不包含这些内容,就是字符分隔的纯文本,保存最基本的表格数据信息,结构简单清晰。

写入CSV数据

 

此时data.csv文件的内容如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sdSkBwIx-1640339861362)(https://note.youdao.com/yws/public/resource/f8e5908c0721dddb3fd530cf29cb1b8e/xmlnote/WEBRESOURCE726e279bee28d8071543b7a812f60258/42835 “”)]

  上面的程序中没有指明CSV的分隔符,所以使用的是默认的逗号,如果想修改CSV文件中列与列之间的分隔符

 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgtzpeK8-1640339861364)(https://note.youdao.com/yws/public/resource/f8e5908c0721dddb3fd530cf29cb1b8e/xmlnote/WEBRESOURCEf445bd3566bf3f3c9a461ed4bc816fb0/42837 “”)]

也可以使用writerows()一次性写入多行,当然,给它传入的参数是一个二维列表

 

  但是一般情况下,爬虫爬取的都是结构化数据,我们一般会用字典来表示,所以尽量使用csv库提供的DictWriter()向CSV文件中写字典入数据。

 

读取CSV数据