最近用xpath,剛開始有很多問題
用測試代碼跑的時候經常獲取不到值。
第一種情況:
page= etree.parse('text.html') #text.html為一個html文件 <class 'lxml.etree._ElementTree'>
page = etree.HTML(html) #heml為一個字符串
<class 'lxml.etree._Element'>
一開始通過使用字符串進行解析,通過page.xpath()進行元素獲取,找不到值,后面發現這個type是“lxml.etree._Element” ,而不是“lxml.etree._ElementTree”
獲取所有元素的時候兩個都行,但是通過id或者class獲取時下面的那個獲取不到。使用第一種就行。
第二種情況:
/ 從根節點選取。 // 從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置。 這兩個符號是官網解釋。
下面是我的代碼 html.xpath('/div[contains(@id,"test")]') html.xpath('//div[contains(@id,"test")]') 發現第一個中不到元素,第二個可以。
附上html代碼:
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book class="ook"> book1111 <title lang="eng">Harry Potter</title> <price id='11'>29.99</price> </book> <book class="ook"> book2222 <title lang="eng">Learning XML</title> <price>39.95</price> </book> <div id="test" class="rr"><title id="eng">Learning XML</title> </div> </bookstore>
目前存在這些問題體,后面遇到再加。