csv格式存储
1.什么是csv格式
逗号分隔值(Comma-Separated Values,CSV),其文件以纯文本形式存储表格数据(数字和文本),文件的每一行都是一个数据记录。每个记录由一个或多个字段组成,用逗号分隔。因为分隔字符也可以不是逗号,有时也称为字符分隔值。
csv文件格式是一种通用的电子表格和数据库导入导出格式。
2.例子
import csv
with open(‘doc/example.csv’, ‘w’) as f:writer = csv.writer(f)
#将列表的每条数据依次写入csv文件, 并以逗号分隔
writer.writerows([[‘1’, ‘2’, ‘3’], [‘4’, ‘5’, ‘6’]])with open(‘doc/example.csv’, ‘r’) as f:
reader = csv.reader(f)
for row in reader:print(row)
解析页面之xpath
1.解析页面模块的比较:
-正则表达是是进行内容匹配,将符合要求的内容全部获取;
-xpath()能将字符串转化为标签,会检测字符串内容是否为标签,但是不能检测出内容是否为真的标签;
-BeautifulSoup是Python的一个第三方库,它的作用和 xpath 作用一样,都是用来解析html数据的相比之下;xpath的速度会快一点,因为xpath底层是用c来实现的
2.三者语法不同,正则表达式使用元字符,将所有获得内容与匹配条件进行匹配,而xpath和bs4将获取的解析后的源码进行按条件筛选,筛选出想要的标签即根据标签属性来找到指定的标签,之后对标签进行对应内容获取;
xpath:全称XML PATH Language, 一种小型的查询语言;
支持的解析:
XML格式
html格式
通过元素,和属性进行导航
xpath爬取mooc网课程
解析页面的函数
def parser_content(html):
#1.将内容转化为xpath可以解析或匹配的格式;
selector=etree.HTML(html)
#2.获取每个课程的信息
courseDetails=selector.xpath(’//div[@class=“course-card-container”]’)
courseInfos=[]
for courseDetail in courseDetails:#获取课程的名称
name=courseDetail.xpath(’.//h3[@class=“course-card-name”]/text()’)[0]
#获取学习人数
studentNum=courseDetail.xpath(’.//span/text()’)[1]
#获取课程描述
courseInfo=courseDetail.xpath(’.//p[@class=‘course-card-desc’]/text()’)[0]
#获取课程链接
courseUrl = “http://www.imooc.com” + courseDetail.xpath(’.//a/@href’)[0]
#课程图片的url
courseImgUrl = ‘http:’ + courseDetail.xpath(’.//img/@src’)[0]
#将提取的信息,保存到列表中
courseInfos.append((name, studentNum, courseInfo, courseUrl, courseImgUrl))return courseInfos