正则使用的注意点
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的字符串
-
提取页面数据的思路
- 先分组,渠道一个包含分组标签的列表
- 遍历,取其中每一组进行数据的提取,不会造成数据的对应错乱