關於 Xpath 能解析網頁,但返回空列表


  • tboty問題:

  當我們用瀏覽器直接copy Xpath 時(因為瀏覽器時實時解析),tbody這個元素是html生成時產生的,在使用xpath解析的時候無法解析,因此返回的列表為空值。

解決方法:把tbody去掉就行啦

 

  • 路徑問題:

完整路徑(就是我們內容所在的位置的路徑):/html/body/div[3]/div[2]/div[2]/div[1]/ul/li[2]/a

 

絕對路徑(我們通過銜接路徑(./),路徑與完整路徑相同):   

大方向路徑:title = html.xpath("/html/body/div[3]/div[2]/div[2]/div[1]/ul")[0]
li = title.xpath("./li/a/text()")

我們把兩個路徑連起來,和完整路徑相同(/html/body/div[3]/div[2]/div[2]/div[1]/ul/li[2]/a),用(./)鏈接起來

./:代表之前的路徑

相對路徑:

完整路徑:/html/body/div[3]/div[2]/div[2]/div[1]/ul/li[2]/a
大方向路徑:title = html.xpath("/html/body/div[3]/div[2]/div[2]/div[1]/ul")[0]

for循環路徑:./a/text()
通過觀察發現:相對路徑的 ./ 代表的到大方向路徑之下的一個路徑(li)。

我們再寫相對路徑的時候,不要跟完整路徑混合。

寫成完整路徑不會報錯,也能解析成功,會返回列表
for ti in title:
t = ti.xpath("./a/text()")
print(t)

附圖:

 


免責聲明!

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



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