0:引言

使用Beautifulsoup和Selenuim等网页分析工具时,经常需要自己构造一个选择器,最常用的是CSS选择器和Xpath。如何验证选择器构造是否正确呢?我们可以直接在网页的开发者工具Console栏里使用JS代码来验证选择器的正确性。

1:CSS Selector验证

1
2
css_selector = '#bs_form_main input[value=buchen]'
document.querySelector(css_selector)

JS有提供querySelector方法,如果返回值不为Null,则说明选择器构造正确。

2:Xpath验证

1
2
xpath='//*[@id="bs_tr3FE6EE511403"]/td[9]/input'
document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null).iterateNext()

evaluate方法返回XpathResult对象,通过iterateNext可以依次获取符合选择的Dom。通常情况下,不需要确认是否有多个符合条件的返回值,所以如果返回不是null,则xpath构造正确

如果需要确认,返回一个或者多个符合xpath的dom,可以使用下面的方法。

1
2
3
4
5
6
7
8
function x(xpath) {
var result = document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null);
var i = 0;
while(result.iterateNext()){
i++;
}
return i;
}

3:参考

JavaScript 技术篇-js通过xpath获取dom节点,js校验xpath唯一性。

评论