掌握re库(正则表达式)的用法
re.findall("a(.*?)b",”str“)
能够返回括号中的内容,括号前后的内容起到定位和过滤的效果- 原始字符串r,使用r可以忽视反斜杠带来的转义的效果
.
默认匹配不到\n
\s
能够匹配空白字符,不仅仅包含空格,还有\t \r \n
- 万能的
.*?
用法
XPATH
Xpath是一门在HTML\XML文档中查找信息的语音,可以用来在HTML\XML文档中对元素属性进行遍历
W3SCHOOL文档:https://www.w3school.com.cn/xpath/index.asp
- 获取文本
- a/text() 获取a下的文本
- a//text() 获取a下的所有文本
- //a[text()=‘下一页’] 选择文本为’下一页‘的a标签
- 获取属性
@符号
@href
//ul[@id="detail-list"]
//
- 在xpath开始的时候表示从当前html中任意位置开始选择
li/a
表示在li下面所有的a
lxml库
- 使用入门
- 导入lxml的etree库,from lxml import etree
- 利用etree.HTML,将字符串转化为Element对象
- Element对象具有xpath的方法
html=etree.HTML(text)
- ’etree.xpath(“输入xpath代码”)‘
- lxml可以自动修正html代码
- 提取页面数据思路
- 先分组,取到一个包含分组标签的列表
- 遍历,取其中每一个组进行数据的提取,不会造成数据对应错乱
#查看element对象中包含的字符串
etree.tostring(html).decode()