2017-03-29 102 views
0

我是python和xpath的新手。我試圖從HTML文件中打印標籤'p'內的文本。 我有這個代碼部分:如何在python中使用xpath打印特定標籤中的所有文本?

<section> 
    <p>Hello <br>nnn</br> <a href="google.com"> dfgdfg </a> World!</p> 
</section> 

我想打印:Hello nnn World!和我使用的代碼是:

for el in html.xpath('//section/p'): 
    print (el.text) 

但打印的文本只有:你好 任何一個可以幫助我解決這個?

+0

你有什麼用? 'lxml'? 'soup'? – eLRuLL

+0

@eLRuLL使用lxml – fiscsp

回答

1

使用text()直接的XPath內:

for el in html.xpath('//section/p//text()'): 
    print (el) 

檢查//說來獲得當前p內所有節點的所有文本。

打印所有在一起,嘗試:

print(''.join(html.xpath('//section/p//text()'))) 
+0

它不起作用。如果我打印(el),它會打印'p'標籤中的所有文本,但每個部分都在一個新行中 – fiscsp

+0

ok,檢查更新後的答案 – eLRuLL

+0

作品像一個魅力,謝謝:) – fiscsp

1

嘗試使用XPath'//section/p/text()'如下得到Hello nnn World!

for el in html.xpath('//section/p/text()'): 
    print (el, end='') 
+0

正是我想要的,謝謝:) – fiscsp

相關問題