正则使用的注意点
re.findall("a(.*?)b","str")
,能够返回括号中的内容,括号前后的内容起到定位和过滤的效果原始字符串r,待匹配字符串中有反斜杠的时候,使用r能够忽视反斜杠带来的转义的效果
点号默认情况匹配不到
\n
\s
能够匹配空白字符,不仅仅包含空格,还有\t|\r\n
xpath学习重点
- 使用xpath helper或者是chrome中的copy xpath都是从element中提取的数据,但是爬虫获取的是url对应的响应,往往和elements不一样
获取文本
a/text()
获取a下的文本a//text()
获取a下的所有标签的文本//a[text()='下一页']
选择文本为下一页三个字的a标签
@符号
a/@href
//ul[@id="detail-list"]
//
- 在xpath最前面表示从当前html中任意位置开始选择
li//a
表示的是li下任何一个标签
lxml使用注意点
lxml能够修正HTML代码,但是可能会改错了
- 使用etree.tostring观察修改之后的html的样子,根据修改之后的html字符串写xpath
lxml 能够接受bytes和str的字符串
提取页面数据的思路
- 先分组,渠道一个包含分组标签的列表
- 遍历,取其中每一组进行数据的提取,不会造成数据的对应错乱