正则表达式和 CSS 选择器以及 XPath
正则表达式
正则表达式主要用于字符串匹配,使用正则表达式之前需要了解各个符号的含义,这里推荐 菜鸟教程,在了解语法之后我们可以通过 regex101 进行正则表达式的测试。
CSS 选择器
CSS 选择器用于筛选 HTML 文档中的元素,可以通过元素的标签及元素的属性进行筛选,这里介绍使用过的一些小例子:
span[class=KnowledgeNetcont] > a::text
筛选出class
属性为 KnowledgeNetcont 的span
标签下的a
标签的文本内容。a[href*=image]::attr(href)
筛选出a
标签的href
属性值包含 image 的属性值。
XPath
XPath 也用于筛选 HTML 文档中的元素,主要基于文档的结构进行筛选,这里依旧介绍使用过的一些小例子:
xpath(".//a[@target='kcmstarget']").xpath('string(.)')
@
用于选取属性,string(.)
取的当前节点下的所有文本(包含子标签的文本),整个的含义是选取当前节点下所有target
属性值为 kcmstarget 的a
标签下的所有文本。xpath(".//em/text()")
如果只想取的当前节点的文本而不需要子标签的文本则可以用text()
去获取。xpath("//div/a[text()='下一页']/@href")
获取文本内容为下一页的a
标签的href
属性值。
参考资料
- 正则表达式 – 教程
- XPath 教程
- CSS 选择器参考手册