零基础学<font class="skcolor_ljg">Python</font>(全彩版) 怎么吧这个标签里的汉字用 xpath 全部提取出来。 谢谢大佬们。
1
Govn OP <em>零基础学<font class="skcolor_ljg">Python</font>(全彩版)</em>
没写全。。 |
2
JCZ2MkKb5S8ZX9pq 2019-06-20 23:39:48 +08:00 via iPhone
em//text()
这样行嘛? |
3
limuyan44 2019-06-21 00:05:43 +08:00
chrome 控制台右键 copy wiht xpath 这个没给文档结构写了哪里准哦
|
4
ksedz 2019-06-21 01:04:23 +08:00 1
normalize-space(.//em)
|
5
lxychn 2019-06-21 02:12:21 +08:00 1
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } var text = getElementByXpath("//font[@class='skcolor_ljg']/text()") |
6
Govn OP @JCZ2MkKb5S8ZX9pq 不行的呀,这样提取不出来 python。
|
7
darknoll 2019-06-21 08:50:31 +08:00
用个正则表达式得了
|
8
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 (全彩版) |
9
R0n1n 2019-06-21 09:27:03 +08:00 via Android
用正则,这样就得到两个问题啦🤣
|
12
Govn OP 其实昨天试了一下用 xpath ("string(//font[@class='skcolor_ljg'])")可以提取出来。
|
13
foxyier 2019-06-21 13:41:55 +08:00
//em/text()[2]
|
14
foxyier 2019-06-21 13:43:57 +08:00
修正楼上。把[2]去掉。
|
15
dsg001 2019-06-21 17:27:31 +08:00 1
>>> from lxml import etree
>>> html = '<em>零基础学<font class="skcolor_ljg">Python</font>(全彩版)</em>' >>> doc = etree.fromstring(html) >>> doc.xpath('//em//text()') ['零基础学', 'Python', '(全彩版)'] |