数据提取方法
1.json处理
json.loads(json_str):将json字符串转换为Python对象
json.dumps(str):将Python对象转换为json字符串
json.load():将类json文件转换为Python对象
json.dump():将Python对象转换为类json字符串
注:json的字符串必须用双引号,如果不是的话可以用replace替换后再操作;一个json文件中只能有一个json
2.正则表达式
re.compile(r):对正则表达式进行编译
re.match(r, str):匹配第一个符合的内容
re.search(r, str):找到一个
re.findall(r,str):找到所有符合的内容,返回一个列表
re.sub(要替换的内容,替换后的内容,str)
注:1).无法匹配\n,添加re.DOTALL或re.S后可匹配
2)原生字符串,使用r可以忽略转义符的影响,还可以用在Windows系统中的文件路径
3.Xpath
xpath中.表示当前节点,..表示当前节点的父节点
1.xpath在在爬虫获得的内容中使用和浏览器中的element可能会有区别
2.关于文本的使用
1)a/text():获取a中的文本
2)a//text():获取a下所有的文本,包括a中标签下的文本
3)//a[text()='文本']:获取符合文本内容的所有a
3.@符号的使用
1)a/@href:获取a的href属性
2)//a[@id="title"]:获取id属性为title的所有a
3)//a[contains(@class, 'i')]:class属性包含i的所有a
4.//的使用
1)//a:直接定位所有的a
2)a//b:a下的b标签
注:chrome浏览器中可以按装xpath helper使用xpath
4.Python中使用xpath,lxml库
安装:pip install lxml
使用:
1)from lxml import etree
2) 使用etree.HTML(str)将字符串转换为Element对象
3)element对象可以调用xpath进行筛选数据
注:1)etree.HTML可以接收str或byts作为参数
2)lxml会修正HTML代码,但可能会修改错误,可以使用etree.tostring()观察修改后的html文档,然后根据修改后的html内容写xpath语句
3)在提取数据时可以先进行分组,然后在对每个分组进行数据提取,以免数据错乱