如何使用XPath获取<p>标签之间的文本内容?
提取指定下
标签的文本内容
直接用XPath提取文本
你的基础XPath已经能定位到目标
标签,在此基础上可以通过以下方式获取文本:
获取每个
的直接子文本(仅提取
下一级的文本,不包含子标签内的文本):
//span[@class='_39I1Z _2ITlL _3D3LC _3NGVr embTL _1zNVc']/span/p/text()注意:对于包含
<b>子标签的<p>(比如你的第4个),这个写法会返回空,因为它的文本在
<b>标签内。获取每个
的全部文本内容(包含子标签内的文本):
//span[@class='_39I1Z _2ITlL _3D3LC _3NGVr embTL _1zNVc']/span/p//text()这个会提取所有
下的所有层级文本,包括
<b>里的内容。提取单个
的全部文本(比如第4个带
<b>的):
string(//span[@class='_39I1Z _2ITlL _3D3LC _3NGVr embTL _1zNVc']/span/p[4])过滤掉空的
标签(只保留有文本内容的):
//span[@class='_39I1Z _2ITlL _3D3LC _3NGVr embTL _1zNVc']/span/p[normalize-space(text()) != '']
用代码工具提取(以Selenium为例)
如果用Selenium定位到
元素后,直接调用.text属性就能获取该元素的全部可见文本:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() # 假设你已经打开了目标页面 p_elements = driver.find_elements(By.XPATH, "//span[@class='_39I1Z _2ITlL _3D3LC _3NGVr embTL _1zNVc']/span/p") for p in p_elements: print(p.text)
这个方法会自动处理子标签文本,空的
会输出空字符串。
内容的提问来源于stack exchange,提问作者North Legion
相关产品推荐
相关产品推荐

