前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【爬虫】(五)数据存储之CSV

【爬虫】(五)数据存储之CSV

作者头像
一点儿也不潇洒
发布2018-08-07 10:13:39
4210
发布2018-08-07 10:13:39
举报
文章被收录于专栏:肖洒的博客

一个完整的(大)数据处理可以分为这几个阶段:

  • 数据收集
  • 数据存储
  • 数据建模
  • 数据分析
  • 数据变现。

Holi的项目进度,已经从入门到处理了。

第一步的数据收集基本已经完成。

现在是第二步的数据存储。

讲道理,不懂点前端知识还真不好下手。

看到一堆标签也是很烦的,还好这些东西就想剥洋葱一样,一层一层剥开。

配合上《爱丽丝梦游仙境》的BeautifulSoup,就方便多了。

CSV( Comma-Separated Values,逗号分隔值)是存储表格数据的常用文件格式。

Microsoft Excel 和很多应用都支持 CSV 格式,因为它很简洁。

Python 的 csv 库可以非常简单地修改 CSV 文件,甚至从零开始创建一个 CSV 文件:

代码语言:javascript
复制
import csv  

csvFile = open("../files/test.csv", 'w+')
try:
	writer = csv.writer(csvFile)
	writer.writerow(('number', 'number plus 2', 'number times 2'))
	for i in range(10):
		writer.writerow( (i, i+2, i*2))
finally:
	csvFile.close()
```  
  
这种方案来处理教务处的数据,就很方便。  

这里拿处理课表的来说。  

解析课表的网页源码会看到有一个table的标签,这个很重要。  

    <table id="tableObj" width="99%" border="0" cellspacing="0" cellpadding="0" class="arranging_arrange">

确定了table和class,就看开始剥洋葱了。

import csv from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen(“课表url”) bsObj = BeautifulSoup(html)

看网页源码的class

table = bsObj.findAll(“table”,{“class”:”arranging_arrange”})[0]

#剥第一层洋葱 rows = table.findAll(“tr”)

#存储CSV csvFile = open(“../files/editors.csv”, ‘wt’, newline=’’, encoding=’utf-8’) writer = csv.writer(csvFile)

try: for row in rows: csvRow = []

代码语言:javascript
复制
#继续一层层剥洋葱
for cell in row.findAll(['td', 'th']):
    csvRow.append(cell.get_text())
writer.writerow(csvRow)

finally: csvFile.close() ```

这样就可以得到存储在当前目录的CSV文件了。

用Notepad++打开可以看,用excel打开会乱码。

虐狗节,撸代码,还有谁。

哈哈哈哈。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 看网页源码的class
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档