爬虫:css 与 xpath 的区别

2021-02-18  本文已影响0人  dex0423

1. CSS v.s. XPATH

多个属性匹配

xpath           -->            //a[@class='name' and value='123']

css             -->            a[.name][value='123']

-----------------------------------------------------------------------------------------------------------------------------------------

拥有某个属性的元素

xpath           -->            //*[@title]

css             -->            *[title]

2. CSS 和 XPATH 的功能对比

对比项 定位方式 CSS XPATH
常规属性 id #id_keyword //*[@id=‘id关键字‘]
常规属性 class .class_name //*[@class=‘class属性名‘]
常规属性 name [name=‘name关键字‘] //*[@name=‘name关键字‘]
多个属性组合 —— [type=‘type关键字‘][name=‘name关键字‘] //input[@type=‘type关键字‘ and @name=‘name关键字‘]
文本属性 —— 不支持 //*[text()=‘text字符串‘]
层级关系 相对路径 form#form>span>input //form[@id=‘form]/span/input
层级关系 索引 select#nr>option:nth-child(3) //select[@id=‘nr‘]/option[3]
找父节点 —— 不支持 //*[@id=‘id关键字‘]/../..
模糊匹配 模糊匹配text 不支持 //*[contains(text(),'text字符串')]
模糊匹配 模糊匹配某个属性 不支持 /*[contains(@class,'class属性名')]
模糊匹配 模糊匹配以xx开头 不支持 //*[starts-with(@id,'开头字符串')]
上一篇下一篇

猜你喜欢

热点阅读