-
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)
附圖: