CSV文件模块的使用
---恢复内容开始---
1、CSV模块使用流程
1、导入模块
impport CSV
2、打开文件(xxx.csv)
with open('xxx.csv','a',encoding='utf-8') as f:
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、写正则表达式
'<div class="movie-item-info".*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S
练习:爬取猫王top10信息
from urllib import request
import re
import time
import csv class MaoyanSpider(object):
def __init__(self):
self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"}
self.page = 1
# 用来计数 def get_page(self, url):
req = request.Request(url, headers=self.headers)
res = request.urlopen(req)
html = res.read().decode('utf-8')
# 直接调用解析函数
self.parse_page(html) def parse_page(self,html):
p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?class="releasetime">(.*?)</p>',re.S)
#p=re.compile('<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.* ?)</p>.*?class="releasetime">(.*?)</p>',re.S)
r_list = p.findall(html)
# 直接调用保存函数
# r_list:[('霸王别姬','张国荣','1993'),(),()]
self.write_csv(r_list) # 保存数据函数
def write_csv(self,r_list):
with open('猫眼电影top10.csv','a') as f:
writer = csv.writer(f)
# 依次写入每个电影信息
for r_t in r_list:
film = [
r_t[0].strip(),
r_t[1].strip(),
r_t[2].strip()
]
writer.writerow(film) #主函数
def work_om(self):
for pn in range(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))
运行截图:

---恢复内容结束---
CSV文件模块的使用的更多相关文章
- python3使用csv模块读写csv文件
python3使用csv模块读写csv文件 读取csv文件: import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() ...
- Python开发【模块】:CSV文件 数据可视化
CSV模块 1.CSV文件格式 要在文本文件中存储数据,最简单的方式是讲数据作为一系列逗号分隔的值(CSV)写入文件,这样的文件成为CSV文件,如下: AKDT,Max TemperatureF,Me ...
- csv文件已经python内置csv模块
csv(Comma Separated Value,即逗号分隔值),文件以纯文本形式存储表格数据(数字和文本).可以用excel打开,并自动将每个逗号隔开的数据作为一列在excel中显示. pytho ...
- Python的csv文件(csv模块)和ini文件(configparser模块)处理
Python的csv文本文件(csv模块)和ini文本文件(configparser模块)处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.csv文件 1>.CSV文件 ...
- Python与CSV文件(CSV模块)
Python与CSV文件(CSV模块) 1.CSV文件 CSV(逗号分隔值)格式是电子表格和数据库最常用的导入和导出格式.没有“CSV标准”,因此格式由许多读写的应用程序在操作上定义.缺乏标准意味 ...
- [Python]-pandas模块-CSV文件读写
Pandas 即Python Data Analysis Library,是为了解决数据分析而创建的第三方工具,它不仅提供了丰富的数据模型,而且支持多种文件格式处理,包括CSV.HDF5.HTML 等 ...
- Python-csv模块读写csv文件
import csv # 采用DictReader进行读写: # 读csv文件def get_data(self, from_file): test_data = [] with open(from_ ...
- Python3使用csv模块csv.writer().writerow()保存csv文件,产生空行的问题
问题:csv.writer().writerow()保存的csv文件,打开时每行后都多一行空行 解决方法:在open()内增加一个参数newline='' 即可 问题现象: 1.代码 with ...
- python之模块csv之 读取CSV文件(reader和DictReader2个方法)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #读取CSV文件(reader和DictReader2个方法) import csv #csv文件,是一种常用 ...
随机推荐
- js中获取数组中的最大值最小值
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修 ...
- 爬虫系列(五) re的基本使用
1.简介 究竟什么是正则表达式 (Regular Expression) 呢?可以用下面的一句话简单概括: 正则表达式是一组特殊的 字符序列,由一些事先定义好的字符以及这些字符的组合形成,常常用于 匹 ...
- Bootstrap关于表单(一)
1.基础表单 表单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文本域和按钮等. 在Bootstrap框架中,通过定制了一个类名`form-control`,也就是说,如果这几个元 ...
- 域名和ip、端口的关系
背景:新建一个项目,属于RPC服务,调用时需要ip+端口. 在工单系统里走流程,强制填写域名.之前也操作过,感觉域名不重要.我本来需要填写ip+端口,你给整个域名,那我端口往哪写?(一直以为域名=ip ...
- Spring 单例模式和多例模式
1.Spring中的对象默认都是 单例模式. 2.使用 @Scope("prototype") 注解来使对象成为多例模式. 3.通过@Autowired 注入的Service 或者 ...
- (33)Spring Boot 监控和管理生产环境【从零开始学Spring Boot】
[本文章是否对你有用以及是否有好的建议,请留言] spring-boot-actuator模块提供了一个监控和管理生产环境的模块,可以使用http.jmx.ssh.telnet等拉管理和监控应用.审计 ...
- poj 1523 求割点把一个图分成几个联通部分
#include<stdio.h> #include<string.h> #define N 1100 struct node { int u,v,next; }bian[N* ...
- P2310 loidc,看看海
P2310 loidc,看看海 题目背景 loidc喜欢大海.在他放假的时候他经常一个人跑到海边独自玩耍. 在浪花的冲击下,他可以忘记打代码的烦躁,真是惬意极了. 虽然今天是周六,但今天可是11.8号 ...
- Linux文字分段裁剪命令cut(转)
Linux cut命令用于显示每行从开头算起num1到num2的文字. 语法 cut [-bn] [file] cut [-c] [file] cut [-df] [file] 使用说明: cut命令 ...
- JSTL函数标签
tld 文件代码 <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="ht ...