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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。