Python CSV文件模块的使用案例分析
本文实例讲述了PythonCSV文件模块的使用。分享给大家供大家参考,具体如下:
1、CSV模块使用流程
1、导入模块
impportCSV
2、打开文件(xxx.csv)
withopen('xxx.csv','a',encoding='utf-8')asf:
- 1、a和a+ ‘追加'功能
a 追加写
a+追加写读(先写后读)
- 2、r和r+
r只读
r+读写,先读后写
- 3、w,w+
w只写
w+写读先写后读
3、初始化写入对象
writer=csv.wirter()
4、写入数据
writer.writerow(['孙悟空','兰陵王'])
案例:
猫眼电影top10榜单的爬取
1、网址:url
2、目标:爬取自己想要的文件
3、保存本地:csv文件
4、步骤
- 1、找url规律
第一页:https://maoyan.com/board/4?offset=0
第4页:https://maoyan.com/board/4?offset=30
第n页:offset=(n-1)*10
- 2、写正则表达式
'
练习:爬取猫王top10信息
fromurllibimportrequest importre importtime importcsv classMaoyanSpider(object): def__init__(self): self.headers={"User-Agent":"Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1"} self.page=1 #用来计数 defget_page(self,url): req=request.Request(url,headers=self.headers) res=request.urlopen(req) html=res.read().decode('utf-8') #直接调用解析函数 self.parse_page(html) defparse_page(self,html): p=re.compile('.*?title="(.*?)".*?class="star">(.*?).*?class="releasetime">(.*?)',re.S) #p=re.compile(' .*?title="(.*?)".*?class="star">(.*?).*?class="releasetime">(.*?)',re.S) r_list=p.findall(html) #直接调用保存函数 #r_list:[('霸王别姬','张国荣','1993'),(),()] self.write_csv(r_list) #保存数据函数 defwrite_csv(self,r_list): withopen('猫眼电影top10.csv','a')asf: writer=csv.writer(f) #依次写入每个电影信息 forr_tinr_list: film=[ r_t[0].strip(), r_t[1].strip(), r_t[2].strip() ] writer.writerow(film) #主函数 defwork_om(self): forpninrange(0,41,10): url='https://maoyan.com/board/4?offset=%s'%str(pn) self.get_page(url) print('第%d页爬取成功'%self.page) self.page+=1 time.sleep(4) if__name__=='__main__': begin=time.time() spider=MaoyanSpider() spider.work_om() end=time.time() print("执行时间%.2f"%(end-begin))
运行截图:
更多Python相关内容感兴趣的读者可查看本站专题:《Python操作Excel表格技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。