这是我正在处理的HTML
<a class="_54nc" href="#" role="menuitem">
<span>
<span class="_54nh">Other...</span>
</span>
</a>
我似乎无法通过链接找到正确的XPath结构。页面上还有其他元素与<a class="_54nc">
具有相同的属性,所以我想我会先从孩子开始,然后再去找父母。
我尝试了很多变化,但我会想到这样的事情:
crawler.get_element_by_xpath('//span[@class="_54nh"][contains(text(), "Other")]/../..')
我尝试的所有东西似乎都没有用。任何想法都会非常感激。
答案 0 :(得分:1)
或者,更清洁的是//*[.='Other...']/../..
,而.
则直接指向父元素
在其他情况下,如果您想查找a
代码,请使用css [role='menuitem']
,如果role
属性是唯一的,这是更好的选择
答案 1 :(得分:0)
尝试这个怎么样
crawler.get_element_by_xpath('//a[@class="_54nc"][./span/span[contains(text(), "other")]]')
答案 2 :(得分:0)
试试这个:
crawler.get_element_by_xpath(&#39; //一个[@class =&#39; _54nc&#39;] //跨度[。=&#39;其他...&#39;]&#39; );
这会搜索元素&#39; a&#39;作为&#34; _54nc&#34;并包含确切的文本/ innerHTML&#34;其他......&#34;。此外,您只需编辑文本&#34;其他...&#34;与其他文本一起查找相应的元素