正则表达式和 CSS 选择器以及 XPath

正则表达式

正则表达式主要用于字符串匹配,使用正则表达式之前需要了解各个符号的含义,这里推荐 菜鸟教程,在了解语法之后我们可以通过 regex101 进行正则表达式的测试。

CSS 选择器

CSS 选择器用于筛选 HTML 文档中的元素,可以通过元素的标签及元素的属性进行筛选,这里介绍使用过的一些小例子:

  1. span[class=KnowledgeNetcont] > a::text
    筛选出 class 属性为 KnowledgeNetcont 的 span 标签下的 a 标签的文本内容。
  2. a[href*=image]::attr(href)
    筛选出 a 标签的 href 属性值包含 image 的属性值。

XPath

XPath 也用于筛选 HTML 文档中的元素,主要基于文档的结构进行筛选,这里依旧介绍使用过的一些小例子:

  1. xpath(".//a[@target='kcmstarget']").xpath('string(.)')
    @ 用于选取属性,string(.) 取的当前节点下的所有文本(包含子标签的文本),整个的含义是选取当前节点下所有 target 属性值为 kcmstarget 的 a 标签下的所有文本。
  2. xpath(".//em/text()")
    如果只想取的当前节点的文本而不需要子标签的文本则可以用 text() 去获取。
  3. xpath("//div/a[text()='下一页']/@href")
    获取文本内容为下一页的 a 标签的 href 属性值。

参考资料

  1. 正则表达式 – 教程
  2. XPath 教程
  3. CSS 选择器参考手册