csv格式存储与xpath解析页面

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

猜你喜欢

转载自blog.csdn.net/qq_37037438/article/details/87796552