我正在成功使用此XPath查询:
//div[(@class="result")]//a[contains(@href,"pinterest.com")]/@href
我在这里使用XPath查询(使用simple_html_dom.php)的网址是 this 。
现在,我想找到 pinterest.com/one-folder-deep-only
的结果,并排除比一个目录更深的所有网址,例如 pinterest.com/one-folder-deep-only/this
或 {{1 }} 即可。我不知道是否有办法实现这一目标。谷歌搜索了很多,但没有找到任何东西。也许我的搜索条件并不是最好的。
你有什么想法吗?谢谢你帮助我。
我正在使用 Chrome XPath Helper 测试查询。
答案 0 :(得分:0)
" //"是评估所有级别/深度。而只使用一个" /"对于" a"查询仅评估直接孩子
//div[(@id="first-result")]/a[contains(@href,"url.com")]/@href
注意在" a"之前使用/而不是//标签
答案 1 :(得分:0)
尝试以下XPath,仅从所需的锚点中选择@href
:
//a[contains(@href, "url.com") and not(contains(substring-after(./@href, 'url.com/'), "/"))]/@href
XPath 2.0的解决方案:
//a[contains(@href, "url.com") and count(tokenize(@href, "/"))=2]/@href
请注意,如果在实际HTML源代码href
中以"http://url.com"
开头,则应指定=4
而不是=2