2017-08-22 40 views
0

我想知道如何找出我的文檔的開頭<html>標籤是否具有Python中的特定關鍵字。我使用urllib和lxml作爲這個應用程序的另一部分,所以我試圖用它來實現它。找出<html>是否包含關鍵字

我現在所擁有的:

from urllib import urlopen 
from lxml import etree 

def get_amp_path(url): 
    document = urlopen(url).read() 
    tree = etree.HTML(document) 
    html = tree.xpath('//html') 
    for tag in html: 
    print etree.tostring(tag) 

    return 

我想要做的就是返回true或false如果開<html>標籤包含放大器關鍵字,像這樣<html lang="en" amp>

眼下它似乎打印html標籤的全部內容,而不僅僅是屬性。我如何使這更具體?

+0

檢查'tree.attrib';你不需要'xpath'查找,因爲'html'應該已經是根元素了。 – tzaman

+0

這個伎倆!謝謝 –

回答

0

etree.tostring()只是簡單地打印節點的內容,它在根級別將是整個HTML。您可以檢查元素上的.attrib以查看完整的屬性字典,或使用.keys()獲取密鑰列表。

此外,由於html應該已經是根元素,因此您並不需要執行xpath查找。

像這樣的事情應該工作,假設你只是想知道它是否是存在:

def html_has_amp(url): 
    doc = urlopen(url).read() 
    tree = etree.HTML(doc) 
    return 'amp' in tree.keys() 
相關問題