正则使用的注意点

  • 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的字符串

  • 提取页面数据的思路

    • 先分组,渠道一个包含分组标签的列表
    • 遍历,取其中每一组进行数据的提取,不会造成数据的对应错乱
      爬虫随笔 四

相关文章: