這是一個test.html檔案內容
<!-- hello.html --><div><ul><li class="item-0" text="1"><a href="link1.html">first item</a></li><li class="item-1" text="2"><a href="link2.html">second item</a></li><li class="item-inactive" text="3"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1" text="2"><a href="link4.html">fourth item</a></li><li class="item-0" text="1"><a href="link5.html">fifth item</a></li></ul></div>
以下是xpath使用方法
#coding:utf-8import lxmlimport lxml.etreehtml=lxml.etree.parse("test.html")print type(html)res=html.xpath("//li")print resprint len(res)#列表長度print type(res) #元素列表print type(res[0]) #樹的元素res1=html.xpath("//li/@class") #同級目錄print res1res2=html.xpath("//li/@text")print res2res3=html.xpath("//li/a")#取出下一級print res3res4=html.xpath("//li/a/@href") #取出下一級的某個通有元素print res4res5=html.xpath("//li/a[@href=\"link3.html\"]") #取出下一級的某個通有元素print res5res6=html.xpath("//li//span") #取出下一級的某個通有元素print res6res6=html.xpath("//li//span/@class") #取出下一級的某個通有元素de class屬性print res6res7=html.xpath("//li/a//@class") #取出下一級的某個通有元素de class屬性print res7#res8=html.xpath("//li[1]") #第一個res8=html.xpath("//li[last()]") #最後一個print res8res9=html.xpath("//li[last()]/a/@href") #最後一個li下面的a中的hrefprint res9res9=html.xpath("//li[last()-1]/a/@href") #最後一個li下面的a中的hrefprint res9res10=html.xpath("//*[@class=\"bold\"]") #最後一個li下面的a中的hrefprint res10res11=html.xpath("//*[@text=\"3\"]") #最後一個li下面的a中的hrefprint res11res11=html.xpath("//*[@text=\"3\"]/@class") #最後一個li下面的a中的hrefprint res