div超出不换行_一日一技:XPath不包含应该怎么写?
假設有這樣一段HTML代碼:
測試XPath移除功能
無關緊要的引用內容
你好啊
產品經理,
很高興認識你
。
我想把其中的 你好啊產品經理,很高興認識你提取出來。
如果我們把XPath寫成:
//div[@]/text()
運行效果如下圖所示:
這是因為 /text()只會獲取當前標簽下面的文本,不會獲取子標簽的文本。
為了解決這個問題,我們在 /text()前面再添加一根斜線:
//div[@]//text()
這樣就可以抓取這個 div標簽及其子標簽下面的所有文本。運行效果如下圖所示:
現在問題來了, 無關緊要的引用內容是我不想要的,但是卻被無差別抓取進來了。
如果能夠實現,抓取 這個 div標簽下的文本和除了 以外的所有子節點的文本就好了。
如果沒有 你好啊這三個字,那么XPath可以這樣寫:
//div[@]//*[not(@)]/text()
這里的 //*[not(@)]的意思是說,這個 div標簽下面的所有 class不為"quote"的子標簽的文本。
運行效果如下圖所示:
但比較麻煩的是, 你好啊這一句,它就是 div標簽下的文本,它不屬于任何子標簽。所以上面的XPath無法獲取到。
為了單獨直接獲取 div下面的內容,我們需要使用 |再拼接一個 XPath:
//div[@]/text() | //div[@]//*[not(@)]/text()
運行效果如下圖所示:
不過結果是一個列表,并且有很多換行符,看起來不夠清晰,于是用Python再進行清洗。最終效果如下圖所示:
總結
以上是生活随笔為你收集整理的div超出不换行_一日一技:XPath不包含应该怎么写?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向上取整的方法_瓷砖测量的方法有哪些?瓷
- 下一篇: $emit传递多个参数_Go语言参数传递