为 div class 中的字符串提取 Xpath
extract Xpath for string in a div class
我有下面的 XPath
<div class="sic_cell {symbol : 'GGRM.JK'}">
<a href="/fundamental/factsheet.html?counter=GGRM.JK">Gudang Garam Tbk.</a>
</div>
我想从 HTML.
中提取 "GGRM.JK"
//div[contains(@class, "symbol")]
return 元素不是 "GGRM.JK"
的无文本
仅使用 xpath 获得所需替代而不进行后处理的最短方法是使用函数 substring-after
和 substring-before
.
这是一个例子,如何从 class 和 href 属性中获取 'GGRM.JK'。
import lxml.html as lh
htmlText = """<div class="sic_cell {symbol : 'GGRM.JK'}">
<a href="/fundamental/factsheet.html?counter=GGRM.JK">Gudang Garam Tbk.</a>
</div>"""
htmlDom = lh.fromstring(htmlText)
fromHref = htmlDom.xpath('substring-after(//div/a/@href, "=")')
print(fromHref)
fromClass = htmlDom.xpath('substring-before(substring-after(//div/@class, ": \'"), "\'")')
print(fromClass)
因为您似乎在使用 python,请尝试以下操作:
import lxml.html as lh
data = """[your html above]"""
doc = lh.fromstring(data)
#version 1
target = doc.xpath('//div[contains(@class, "symbol")]/@class')[0]
print(target.split("'")[1])
#version 2
target2 = doc.xpath('//div[contains(@class, "symbol")]/a/@href')[0]
target2.split('=')[1]
无论哪种情况,输出都应该是
GGRM.JK
我有下面的 XPath
<div class="sic_cell {symbol : 'GGRM.JK'}">
<a href="/fundamental/factsheet.html?counter=GGRM.JK">Gudang Garam Tbk.</a>
</div>
我想从 HTML.
中提取"GGRM.JK"
//div[contains(@class, "symbol")]
return 元素不是 "GGRM.JK"
仅使用 xpath 获得所需替代而不进行后处理的最短方法是使用函数 substring-after
和 substring-before
.
这是一个例子,如何从 class 和 href 属性中获取 'GGRM.JK'。
import lxml.html as lh
htmlText = """<div class="sic_cell {symbol : 'GGRM.JK'}">
<a href="/fundamental/factsheet.html?counter=GGRM.JK">Gudang Garam Tbk.</a>
</div>"""
htmlDom = lh.fromstring(htmlText)
fromHref = htmlDom.xpath('substring-after(//div/a/@href, "=")')
print(fromHref)
fromClass = htmlDom.xpath('substring-before(substring-after(//div/@class, ": \'"), "\'")')
print(fromClass)
因为您似乎在使用 python,请尝试以下操作:
import lxml.html as lh
data = """[your html above]"""
doc = lh.fromstring(data)
#version 1
target = doc.xpath('//div[contains(@class, "symbol")]/@class')[0]
print(target.split("'")[1])
#version 2
target2 = doc.xpath('//div[contains(@class, "symbol")]/a/@href')[0]
target2.split('=')[1]
无论哪种情况,输出都应该是
GGRM.JK