xpath無法獲取值、返回值為[]或者{}的問題解決


最近用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>

 

目前存在這些問題體,后面遇到再加。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM