使用xpath獲取指定標籤下html內容

2021-09-29 18:20:09 字數 833 閱讀 3507

通常使用xpath我們直接定位到標籤後, 使用/text() 或 //text()來獲取標籤對之間的文字值,

但特殊情況下我們也需要獲取標籤本身含文字值, 操作如下:

檔案為html, 標籤對結構如下:

'1h'

>

>

>

row value 1td

>

>

row value 2td

>

tr>

table

>

**如下:

from lxml import etree

import requests

from lxml.html import fromstring, tostring

url =

""ret = requests.get(url, headers=headers)

ret.encoding = code

html = ret.text # html檔案內容即示例中的標籤

tree = etree.html(html)

result = tree.xpath(

'//*[@id="lh"]')[

0]print

('看結果這裡'

, tostring(result, encoding=code)

.decode(code)

)

注: tostring()方法即可把通過xpath定位到的標籤(含該標籤)及其下的所有標籤輸出,

切記使用decode()方法來進行解碼

用xpath獲取該標籤下的所有子標籤和文字

xpath獲取該節點下 所有標籤和文字組成的字串 需要獲取子標籤以及文字內容時使用此方法,如果只是想獲取所有子標籤裡面的文字,參考另一篇部落格。from lxml import etree html 關鍵字內容 doc etree.html html msg doc.xpath div class ...

C 正則過濾HTML標籤並保留指定標籤的方法

這邊主要看到乙個過濾的功能 public static string filterhtmltag string s else 我這邊所有都過濾,所以我直接用正則,不再做匿名委託的保留p和br content r程式設計客棧egex.replwww.cppcns.comace content,s g ...

PHP正則匹配HTML中指定標籤之間內容的寫法

假設網頁內容如下 我要匹配的是每乙個之間的內容 當然tr裡面有很多內容,這裡沒有列出來 暫時不考慮tr會巢狀的問題。首先想到的正則是這樣寫的 preg match all i string,matches echo print r matches echo 但執行不了,經網上搜尋資料後改成如下寫法後...