Python3爬虫(八) 数据存储之TXT、JSON、CSV
2018-06-18 02:42:34来源:未知 阅读 ()
Infi-chu:
http://www.cnblogs.com/Infi-chu/
TXT文本存储
TXT文本存储,方便,简单,几乎适用于任何平台。但是不利于检索。
1.举例:
使用requests获得网页源代码,然后使用pyquery解析库解析
import requests from pyquery import PyQuery as pq url = 'https://www.zhihu.com/explore' header = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)' } html = requests.get(url,headers=header).text doc = pq(html) items = doc('.explore-tab .feed-item').items() for item in items: question = item.find('h2').text() author = item.find('.author-link-line').text() answer = pq(item.find('.content').html()).text() with open('test.txt','a',encoding='uft-8') as f: f.write('\n'.join([author,question,answer])) f.write('\n'.join('\n'+'='*50+'\n'))
2.打开方式:
r
rb
r+
rb+
w
wb
w+
wb+
a
ab
a+
ab+
【注】
w和a的区别相当于Linux中>和>> 的区别
JSON文件存储
JSON全称为(JavaScript Object Notation),JavaScript对象标记,通过对象和数组的组合来表示数据,构造简洁,结构化程度非常高,类似于Python当中的字典
1.对象&数组:
在JavaScript中,一切皆对象。
对象:
在JavaScript中使用{}来表示,可以理解为Python当中的字典,有键有值。
数组:
在JavaScript中使用[]来表示,可以理解为Python当中的列表。
2.读取JSON
我们可以调用Python的json库的loads()方法将JSON文本转化为JSON对象,使用dumps()方法将JSON对象转化为文本字符串。
使用get()方法得到键的名字后的值,如果没有值,则返回None,一般会自定义一个默认值,以防返回None
在JSON字符串中,要使用双引号,否则会抛出异常。
3.输出JSON
调用dumps()方法将JSON对象转化为文本字符串。
import json data = [ { 'name':'Infi-chu', 'sex':'male', 'birthday':'2000.01.01' } ] with open('data.json','w+') as f: f.wirte(json.dumps(data)) ''' 想要保存json的格式,可以加一个参数,indent with open('data.json','w') as f: f.write(json.dumps(data,indent=2)) '''
CSV文件存储
CSV全称是(Comma-Separated Values),逗号分隔值或字符分隔值,它是以纯文本形式存储表格数据,相当于结构化的纯文本。
它比Excel更简洁,XLS文本是电子表格,它包含了文本、数值、公式和格式等内容,而CSV中不包含这些内容。
1.举例
import csv with open('data.csv','w+') as cf: wirter = csv.writer(cf) ''' wirter = csv.writer(cf,delimiter=' ') # 此参数是增加分隔符 ''' wirter.wirterow(['id','name','age']) # writerows是同时写入多行,writerow是单行写入 wirter.wirterow(['1','Infi',23]) wirter.wirterow(['2','chu',23])
# 字典方式的写入发 import csv with open('data.csv','w')as f: fieldname = ['id','name','age'] wirter = csv.DictWriter(f,filednames=filename) # DictWriter()方法初始化一个字典写入对象 wirter.writheader() # writheader()方法写入头信息 wirter.wirterows({'id':'1','name':'n1','age':1},{'id':'2','name':'n2','age':2},{'id':'3','name':'n3','age':3})
2.读取
# 通过csv库来读取CSV文件 import csv with open('data.csv','r',encoding='utf-8') as f: reader = csv.reader(f) # reader()方法便利出每行的内容 for i in render: print(row) # 通过pandas 读取 import pandas as pd df = pd.read_csv('data.csv') print(df)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:IO模型
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_0基础开始_day07 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash