xpath - python怎么用lxml處理
問(wèn)題描述
例如:
<p>沒(méi)<em><!--red_beg-->aa<!--red_end--></em></p><p>沒(méi)<em><!--red_beg-->aa<!--red_end--></em>沒(méi)<em><!--red_beg-->aa<!--red_end--></em></p><p>沒(méi)</p>
就是在p標(biāo)簽里可能會(huì)出現(xiàn)同樣的em標(biāo)簽,而且數(shù)量不定,那我怎么獲取p的內(nèi)容,包括em里的內(nèi)容。例如第二個(gè)p獲取輸出是‘沒(méi)aa沒(méi)aa’
或者獲取到p節(jié)點(diǎn)之后,怎么把里面的內(nèi)容轉(zhuǎn)換為字符串
問(wèn)題解答
回答1:今天偶然學(xué)到處理這個(gè)問(wèn)題的方法,特意翻出來(lái)這個(gè)問(wèn)題回答。題主你可以看一下xpath的軸,比如你要取得第二個(gè)<p>標(biāo)簽的“沒(méi)aa沒(méi)aa”,實(shí)際是取得它全部后代節(jié)點(diǎn)的文本內(nèi)容,可以使用element_dom.xpath('//p[2]//descendant::text()')來(lái)取得,拿到的結(jié)果是一個(gè)這樣[’沒(méi)’, ’aa’, ’沒(méi)’, ’aa’]的list,然后自己手動(dòng)拼接成字符串就可以了,比如''.join(list)。同理,如果你需要進(jìn)行其他操作,也可以使用類似的方法。
回答2:換bs4,string和text之間的異同就在這里。
回答3:lxml.html的.text_content()方法,可以獲取當(dāng)前節(jié)點(diǎn)和所有子節(jié)點(diǎn)的文本內(nèi)容。
相關(guān)文章:
1. 視頻文件不能播放,怎么辦?2. node.js - nodejs開(kāi)發(fā)中常用的連接mysql的庫(kù)3. mysql replace 死鎖4. phpstudy pro小皮面板經(jīng)常報(bào)這個(gè)nginx: [emerg] CreateFile【急】5. 老師您的微信號(hào)是多少?6. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?7. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處8. 請(qǐng)教使用PDO連接MSSQL數(shù)據(jù)庫(kù)插入是亂碼問(wèn)題?9. 雙擊安裝程序,安裝不了10. mysql - 字符串根據(jù)字典替換
