
零基础学<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 normalize-space(.//em) |
5 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()") |
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 >>> from lxml import etree >>> html = '<em>零基础学<font class="skcolor_ljg">Python</font>(全彩版)</em>' >>> doc = etree.fromstring(html) >>> doc.xpath('//em//text()') ['零基础学', 'Python', '(全彩版)'] |