如何获取XPATH包含的文本节点



我试图获取包含一些字符串的文本节点,但它没有返回任何内容。这是页面。

这是html片段:

<div id="FNA_envelop">✉ Corresponding authors: Wanli Liu, Department of Clinical Laboratory, Sun Yat-sen University Cancer Center, 651 Dongfeng Road East, Guangzhou 510060, Guangdong Province, China. Telephone/Fax: +86 20 8734 3438; E-mail: <a href="mailto:dev@null" data-email="nc.gro.ccusys@lwuil" class="oemail">nc.gro.ccusys@lwuil</a>; Min Deng, Affiliated Cancer Hospital &amp; Institute of Guangzhou Medical University, No.78, Hengzhigang Road, Guangzhou 510095, P. R. China. E-mail: <a href="mailto:dev@null" data-email="moc.361@590015nimgned" class="oemail">moc.361@590015nimgned</a>.</div>

我的xpaths:

response.xpath('//div[@id="FNA_envelop"]/*[contains(text(),"Deng")]')
[]
response.xpath('//div[@id="FNA_envelop"]/*[contains(.,"Deng")]')
[]

这个想法是获取包含名称的文本节点,然后跟随一个标签并从中提取电子邮件(与名称相关(。

文本节点是用text()选择的,因此,如果您真的想要一个文本节点(而不是包含文本的元素节点(,那么我希望您使用或建议使用例如//div[@id="FNA_envelop"]/text()[contains(., "Deng")],或者,如果文本节点不是(唯一(div的直接子节点,但可能在其他子元素或子元素内部更深,则使用//div[@id="FNA_envelop"]//text()[contains(., "Deng")]

最新更新