Python3编写网络爬虫10-数据存储方式三-CSV文件存储
3.CSV文件存储
CSV 全称 Comma-Separated Values 中文叫做逗号分隔值或者字符分隔值,文件以纯文本形式存储表格数据。
文件是一个字符序列 可以由任意数目的记录组成相当于一个结构化表的纯文本形式,它比Excel更加简洁,
XLS文本是电子表格,包含文本,数值,公式和格式等内容,CSV都没有 就是特定的字符分隔纯文本,结构简单清晰。
3.1 写入
示例:
import csv with open('data.csv','w') as csvfile:
writer = csv.writer(csvfile)#初始化写入对象
writer.writerow(['id','name','age'])#传入每行数据
writer.writerow(['','mike',20])
writer.writerow(['','bod',22])
writer.writerow(['','jordan',21])
更改列与列之间分隔符 可以传入 delimiter参数 记得关闭文件
示例:
import csv with open('data.csv','w') as csvfile:
writer = csv.writer(csvfile,delimiter=' ')#初始化写入对象
writer.writerow(['id','name','age'])#传入每行数据
writer.writerow(['','mike',20])
writer.writerow(['','bod',22])
writer.writerow(['','jordan',21])
同时写入多行 参数为二位列表
import csv with open('data.csv','w') as csvfile:
writer = csv.writer(csvfile)#初始化写入对象
writer.writerow(['id','name','age'])#传入每行数据
writer.writerows([['','mike',20],['','bod',22],['','jordan',21]])
一般情况下 爬虫爬取的都是结构化数据 一般会用字典来表示 csv库也提供了字典的写入方式
示例:
import csv with open('data.csv','w') as csvfile:
fieldname = ['id','name','age']#定义字段
writer = csv.DictWriter(csvfile,fieldnames=fieldname)#初始化字典写入对象
writer.writeheader()#写入头信息
writer.writerow({'id':'','name':'mike','age':20})
writer.writerow({'id':'','name':'bod','age':22})
writer.writerow({'id':'','name':'jordan','age':21})
输入中文 给 open() 加入参数 encoding='utf-8'
示例:
import csv with open('data.csv','a',encoding='utf-8') as csvfile:
fieldname = ['id','name','age']#定义字段
writer = csv.DictWriter(csvfile,fieldnames=fieldname)#初始化字典写入对象
writer.writerow({'id':'','name':'小米','age':20})
3.2 读取
示例:
import csv with open('data.csv','r',encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
在做数据分析时此种方法用的比较多,也是一种常用的数据存储方式,需要熟练掌握。
Python3编写网络爬虫10-数据存储方式三-CSV文件存储的更多相关文章
- python3编写网络爬虫13-Ajax数据爬取
一.Ajax数据爬取 1. 简介:Ajax 全称Asynchronous JavaScript and XML 异步的Javascript和XML. 它不是一门编程语言,而是利用JavaScript在 ...
- Python3编写网络爬虫12-数据存储方式五-非关系型数据库存储
非关系型数据库存储 NoSQL 全称 Not Only SQL 意为非SQL 泛指非关系型数据库.基于键值对 不需要经过SQL层解析 数据之间没有耦合性 性能非常高. 非关系型数据库可细分如下: 键值 ...
- Python3编写网络爬虫11-数据存储方式四-关系型数据库存储
关系型数据库存储 关系型数据库是基于关系模型的数据库,而关系模型是通过二维表保存的,所以它的存储方式就是行列组成的表.每一列是一个字段,每一行是一条记录.表可以看作某个实体的集合,而实体之间存在联系, ...
- Python3编写网络爬虫08-数据存储方式一-文件存储
数据存储 用解析器解析出数据之后,就是存储数据了.保存的形式可以多种多样,最简单的形式是直接保存为文本文件,如TXT JSON CSV等.另外还可以保存到数据库中,如关系型数据库MySQL 非关系型数 ...
- Python3编写网络爬虫09-数据存储方式二-JSON文件存储
2.JSON文件存储 全称为JavaScript Object Notation 通过对象和数组的组合来表示数据,构造简洁且结构化程度非常高.是一种轻量级的数据交换格式 2.1 对象和数组 在Java ...
- python3编写网络爬虫18-代理池的维护
一.代理池的维护 上面我们利用代理可以解决目标网站封IP的问题 在网上有大量公开的免费代理 或者我们也可以购买付费的代理IP但是无论是免费的还是付费的,都不能保证都是可用的 因为可能此IP被其他人使用 ...
- python3编写网络爬虫20-pyspider框架的使用
二.pyspider框架的使用 简介 pyspider是由国人binux 编写的强大的网络爬虫系统 github地址 : https://github.com/binux/pyspider 官方文档 ...
- python3编写网络爬虫23-分布式爬虫
一.分布式爬虫 前面我们了解Scrapy爬虫框架的基本用法 这些框架都是在同一台主机运行的 爬取效率有限 如果多台主机协同爬取 爬取效率必然成倍增长这就是分布式爬虫的优势 1. 分布式爬虫基本原理 1 ...
- python3编写网络爬虫19-app爬取
一.app爬取 前面都是介绍爬取Web网页的内容,随着移动互联网的发展,越来越多的企业并没有提供Web页面端的服务,而是直接开发了App,更多信息都是通过App展示的 App爬取相比Web端更加容易 ...
随机推荐
- PostgreSQL查询优化逻辑优化之其他
上一节我们介绍了PostgreSQL的子查询优化,子查询优化把一部分可以优化的子查询上拉到主查询成为join. preprocess_expression 将表达式(目标列,where,join,ha ...
- Android privilege escalation to mediaserver from zero permissions (CVE-2014-7920 + CVE-2014-7921)
墙外通道:http://bits-please.blogspot.com/2016/01/android-privilege-escalation-to.html In this blog post ...
- Python机器学习笔记:利用Keras进行分类预测
Keras是一个用于深度学习的Python库,它包含高效的数值库Theano和TensorFlow. 本文的目的是学习如何从csv中加载数据并使其可供Keras使用,如何用神经网络建立多类分类的数据进 ...
- Java设计模式学习记录-组合模式
前言 今天要介绍的设计模式是组合模式,组合模式也是结构型设计模式的一种,它主要体现了整体与部分的关系,其典型的应用就是树形结构.组合是一组对象,其中的对象可能包含一个其他对象,也可能包含一组其他对象. ...
- ModBus通信协议的【主从模式】
主从模式 (1) 至少且只有一个主机,其他的都是从机 (2) 不管任何时候,从机都不能主动向主机发送数据 (3) 主机具有访问从机的权限,从机不可以主动访问从机,任何一次数据交换,都要由主机发起 (4 ...
- 如何在 ASP.NET Core 测试中操纵时间?
有时候,我们会遇到一些跟系统当前时间相关的需求,例如: 只有开学季才允许录入学生信息 只有到了晚上或者周六才允许备份博客 注册满 3 天的用户才允许进行一些操作 某用户在 24 小时内被禁止发言 很显 ...
- [PHP] 算法-数组归并排序并计算逆序对的个数的PHP实现
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%100000000 ...
- 【Spring】4、Spring中 @Autowired标签与 @Resource标签 的区别
转自:http://blog.csdn.net/angus_17/article/details/7543478 spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义 ...
- 解决Linux服务器tomact-8.0启动慢的问题
环境信息: CentOS release 6.8 tomcat-8.0 JDK1.8 一.启动tomcat #sh /root/tomcat-8.0/bin/startup.sh #tailf /ro ...
- python爬虫入门---第一篇:获取某一网页所有超链接
这是一个通过使用requests和BeautifulSoup库,简单爬取网站的所有超链接的小爬虫.有任何问题欢迎留言讨论. import requests from bs4 import Beauti ...