xpath 问题相关求回答!谢谢大佬们。

2019-06-20 23:31:05 +08:00
 Govn

零基础学<font class="skcolor_ljg">Python</font>(全彩版) 怎么吧这个标签里的汉字用 xpath 全部提取出来。 谢谢大佬们。

2274 次点击
所在节点    Python
15 条回复
Govn
2019-06-20 23:36:44 +08:00
<em>零基础学<font class="skcolor_ljg">Python</font>(全彩版)</em>
没写全。。
JCZ2MkKb5S8ZX9pq
2019-06-20 23:39:48 +08:00
em//text()
这样行嘛?
limuyan44
2019-06-21 00:05:43 +08:00
chrome 控制台右键 copy wiht xpath 这个没给文档结构写了哪里准哦
ksedz
2019-06-21 01:04:23 +08:00
normalize-space(.//em)
lxychn
2019-06-21 02:12:21 +08:00
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}

var text = getElementByXpath("//font[@class='skcolor_ljg']/text()")
Govn
2019-06-21 08:06:19 +08:00
@JCZ2MkKb5S8ZX9pq 不行的呀,这样提取不出来 python。
darknoll
2019-06-21 08:50:31 +08:00
用个正则表达式得了
wudamen
2019-06-21 09:15:29 +08:00
from lxml import etree

html = '<em>零基础学<font class="skcolor_ljg">Python</font>(全彩版)</em>'

print(etree.HTML(html).xpath('string(//em)'))
零基础学 Python (全彩版)
R0n1n
2019-06-21 09:27:03 +08:00
用正则,这样就得到两个问题啦🤣
Govn
2019-06-21 10:35:30 +08:00
@R0n1n 是的 我决定用正则了。
Govn
2019-06-21 10:35:49 +08:00
@darknoll 是的,我决定用正则了。
Govn
2019-06-21 10:37:09 +08:00
其实昨天试了一下用 xpath ("string(//font[@class='skcolor_ljg'])")可以提取出来。
foxyier
2019-06-21 13:41:55 +08:00
//em/text()[2]
foxyier
2019-06-21 13:43:57 +08:00
修正楼上。把[2]去掉。
dsg001
2019-06-21 17:27:31 +08:00
>>> from lxml import etree
>>> html = '<em>零基础学<font class="skcolor_ljg">Python</font>(全彩版)</em>'
>>> doc = etree.fromstring(html)
>>> doc.xpath('//em//text()')
['零基础学', 'Python', '(全彩版)']

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/576018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX