你这个比较特别,包住这个问题文案的 td 标签,内部实际包了 input + a + span + br + 这段文字 。恒温那个方法应该可以,获取 text() 属性,就是只获取标签中的文字,忽略其它同级别的 html 标签内容。
还有一种思路,就是直接用 xpath 等方法把整个 td 标签拿到,这时候它应该是一个 Element 对象。然后再获取这个对象的 text 属性,这样应该也能单独拿到这段文字。
$x('//*[@id="secqaa_qSnDW3NH"]/div/table/tbody/tr/td/text()')
你这个比较特别,包住这个问题文案的 td 标签,内部实际包了 input + a + span + br + 这段文字 。恒温那个方法应该可以,获取 text() 属性,就是只获取标签中的文字,忽略其它同级别的 html 标签内容。
还有一种思路,就是直接用 xpath 等方法把整个 td 标签拿到,这时候它应该是一个 Element 对象。然后再获取这个对象的 text 属性,这样应该也能单独拿到这段文字。
用 text() 会报错,显示返回的是 object,但是应该是一个元素。
用了你的方法是可以的。。。
//div[@class="rfm"]//child::td/text()[2]
如果有更好的方式大家可以一起讨论。
老哥,这个方法返回的是一个 obj 啊不是一个元素。而且 ID 是动态的话,只能用 full xpath 了吗。
用 id 的模糊匹配吧,前半段好像是固定的