摘抄一位网友的写入和读取csv的代码:

#输出数据写入CSV文件
import csv
data = [("Mike", "male", 24),("Lee", "male", 26),("Joy", "female", 22)
]#Python3.4以后的新方式,解决空行问题
with open('d://write.csv', 'w', newline='') as csv_file:csv_writer = csv.writer(csv_file)for list in data:print(list)csv_writer.writerow(list)
#读取csv文件内容
import csv
list  = []
reader = csv.reader(open("d://demo.csv"))
#csv中有三列数据,遍历读取时使用三个变量分别对应
for title, year, director in reader:list.append(year)print(title, "; ",  year , "; ",  director)print(list)

我们在前面 class 19 中,将保存为csv的功能加入进去:

保存csv的代码如下

    # 保存数据为csv格式def __SaveCSV(self, anchors):with open('d://PandaTV_data.csv', 'w', newline='') as csv_file:csv_writer = csv.writer(csv_file)for value in anchors:csv_writer.writerow([value['name'], value['number']])

完整代码如下:

# Ciellee 2019-02-24 22:00
# 爬虫前奏:
# 明确目的: 获取熊猫TV 英雄联盟主播人气排行榜
# 找到数据对应的网页:https://www.panda.tv/cate/lol?pdt=1.c_lol.psbar-ca0.0.29u3363v9n8
# 分析网页的结构,找到数据所在的标签位置: video-info  { video-nickname, video-number }# 待分析网页数据# <div class="video-info">#     <span class="video-title" title="LPL春季赛RW vs EDG">LPL春季赛RW vs EDG</span>#     <span class="video-nickname" title="LPL熊猫官方直播2台"><i></i>LPL熊猫官方直播2台</span>#     <span class="video-number"><i class="ricon ricon-eye"></i>678.9万</span># </div># 模拟HTTP请求,向服务器发送个请求,获取到服务器返回给我们的HTML
# 用正则表达式提取我们要的数据  video-nickname,video-number
from urllib import request
import re
import csvclass Spider():url = 'https://www.panda.tv/cate/lol?pdt=1.c_lol.psbar-ca0.0.29u3363v9n8'# 匹配字符串  \s\S: 匹配所有字符串  *:匹配无限多个  ?:采用非贪婪模式root_pattern = '<div class="video-info">([\s\S]*?)</div>'name_pattern = '<span class="video-nickname" title="([\s\S]*?)">'number_pattern = '="video-number"><i class="ricon ricon-eye"></i>([\s\S]*?)</span>'# 私有方法,访问网页def __fetch_content(self):r = request.urlopen(Spider.url)# 类型为字节码,byteshtmls = r.read()#print(type(htmls)) # 将字节码转换为字符串文本htmls=str(htmls, encoding='utf-8')#print(type(htmls)) return htmls# 分析文本def __analysis(self,htmls):root_html = re.findall(Spider.root_pattern, htmls)#print(type(root_html))#print(root_html[0])# 新建一个空字典anchors = []for html_tmp in root_html:name = re.findall(Spider.name_pattern, html_tmp)number = re.findall(Spider.number_pattern, html_tmp)# 将name 和 number 拼成一个字典anchor = {'name':name, 'number':number}anchors.append(anchor)#print(anchors[0])return anchors# 对数据进行修饰# strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列def __refine(self, anchors):lam = lambda anchors:{'name':anchors['name'][0].strip(),'number':anchors['number'][0]}return map(lam, anchors)# 对数据进行分析,排序def __sort(self, anchors):anchors = sorted(anchors, key=self.__sort_seed, reverse=True)return anchors# 排序的key, 将number从字符串提取为整数def __sort_seed(self, anchor):r = re.findall('\d*\.*\d*', anchor['number'])number = float(r[0])#print(number)if '万' in anchor['number']:number *= 10000.0#print(number)return number# 显示数据def __show(self, anchors):#for anchor in anchors:for rank in range(0, len(anchors)):print('第' + str(rank+1) + '名' + ' : '+ anchors[rank]['name'] +' ------ '+anchors[rank]['number'] + '人')# 保存数据为csv格式def __SaveCSV(self, anchors):with open('d://PandaTV_data.csv', 'w', newline='') as csv_file:csv_writer = csv.writer(csv_file)for value in anchors:csv_writer.writerow([value['name'], value['number']]) # 用户接口def go(self):# 访问网页htmls = self.__fetch_content()# 解析数据anchors = self.__analysis( htmls )# 对数据进行修饰anchors = list( self.__refine(anchors) )# 分析数据,排序anchors = self.__sort(anchors)# 保存数据为csv格式self.__SaveCSV(anchors)# 显示打印数据#self.__show(anchors)#print( anchors )spider = Spider()
spider.go()

结果如下:

【Class 20】【实例】python 爬虫简单案例实现二---将数据保存为CSV文件相关推荐

  1. python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据

    文章目录: 1 数据说明 2 把数据集文件信息使用python pandas保存成csv文件 3 使用python pandas 读取csv的每行.每列数据 1 数据说明 1.在test_data目录 ...

  2. 【python数据分析】将爬取的数据保存为csv格式

    数据保存为csv格式 csv文件 python的csv模块 从csv文件读取内容 写入csv文件 运用实例 数据准备 将数据存为字典的形式 存储到csv文件 csv文件 一种用逗号分割来实现存储表格数 ...

  3. [python爬虫] 招聘信息定时系统 (二).调用pyinstaller包生成exe文件

    前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作.       ...

  4. 【Class 19】【实例】python 爬虫简单案例实现

    目的: 收集熊猫TV上各个主播的人气排行. 首先观察网站,进入熊猫TV后,按F12,分析网站主播名字和主播观看人数的html项,如下几项: https://www.panda.tv/cate/lol? ...

  5. python编程简单案例_[五组数据]详解一个简单的卡尔曼滤波器python编程实例

    上半年毕设的时候接触了卡尔曼滤波器,用matlab实现了该过程,尝试在一个课后作业中用三维度矩阵来存储变量的方式,结构似乎更好理解,记录一下分析的过程. 假如有一块电阻,你不知道它的阻值是多少,你想 ...

  6. python如何复制oracle数据_Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法...

    本文实例讲述了Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法.分享给大家供大家参考.具体实现方法如下: # Export Oracle database tables ...

  7. python:dataframe保存成csv文件和读取

    一.从csv文件读取数据为dataframe 函数原型: pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='i ...

  8. 和讯网债券数据Python爬取保存成CSV文件之一

    本文讲述国债数据使用python爬取的方式,并将得到的数据保存成CSV文件以日期命名,方便后期处理. 具体代码如下所示: import requests from bs4 import Beautif ...

  9. Python爬虫_案例分析(二)

    Python爬虫_案例分析(二) 一.电影天堂案例 import scrapy from scrapy_movie.items import ScrapyMovieItem class MvSpide ...

最新文章

  1. opencv recipe for target 'all' failed解决
  2. 让CMD窗口显示中文[JAVAC输出中文错误信息乱码的解决]
  3. 找出n个自然数(1,2,3,…,n)中取r个数的组合(C语言)
  4. python进行谱曲_python进行曲——迭代生成
  5. 收好这份来自大厂技术大咖的“远程办公指南”
  6. Android Studio属性动画,Android开发-RecyclerView-AndroidStudio(六)属性动画(3)AddDuration
  7. linux实现NFS自启动,Linux下NFS的搭建
  8. BI的价值体现在哪里
  9. EXCHANGE RBAC(基于角色的访问控制)管理工具
  10. 阶段3 2.Spring_10.Spring中事务控制_2 作业-基于注解的AOP实现事务控制及问题分析_上...
  11. Python学习之Python入门知识(一)
  12. python调用迅雷下载引擎_GitHub - cryzlasm/ThunderOpenSDK: 迅雷开放下载引擎, 收集, 使用...
  13. 学好数据结构的重要性
  14. 《SPSS从入门到精通》笔记(1-4章)
  15. NLP task2 N-Gram
  16. linux6 下dns配置,RHEL6中DNS配置
  17. 在线生成网站地图工具SiteMap
  18. 微信小程序在线点餐外卖小程序实现方法适合校园点餐毕业设计小程序(含代码解释)
  19. 利用html做一个3D 图片动态效果
  20. c语言程序电压采样,单片机电压采集装置课程设计(AD转换及编程实现).doc

热门文章

  1. 立德,立功,立言三不朽;为师,为将,为相一完人。写的是谁?
  2. 2021-09-28互联网快讯:乐视发布手机S1;猿辅导布局素质教育
  3. bzoj4553 [Tjoi2016Heoi2016]序列 树状数组(区间最大值)+cqd
  4. 计算机音频和网络忽然失效,win7系统电脑突然没有声音的5种故障分析及解决方法详解...
  5. 亚马逊2015校招在线笔试1
  6. Spring+JDBC-1
  7. 终于等到你—JoyTok趣抖音带给你全新视觉盛宴
  8. 零点工作室暑假集训(AtCoder--ABC289)
  9. java初学之算数运算符的强制转换
  10. 判断mac是MacOS X64 或者MacOS ARM64