close

這問題在2014跨年後發生的,當時一直覺得很納悶,明明簡單好用的 HtmlAgilityPack 怎麼會取不到值呢? 還拼命跳空值錯誤 整個鬼打牆!

直到過了一個多月才重新開來看當初的錯誤在哪裡,但是語法完全沒有錯誤! 但是就是抓不到,怎麼會呢~~~?

以下是我原本的 Xpath : /body/div[3]/table[1]/tbody[1]

基本上抓到 /body/div[3]/table[1] 都是沒問題的,但是抓到 tbody 就會出問題.這下就把矛頭指向了 tbody,難道會是HtmlAgilityPack 的 bug 嗎?

 

查了許多國外論壇的文章,其實大多把錯誤指向於 Xpath 解析器/或是瀏覽器的多此一舉.原本code並沒有 tbody 的屬性,但是瀏覽器可能會判斷有,所以解析出來的xpath就會有這問題.

 

解法的話...修改為 Xpath : /body/div[3]/table[1]/tr/td 就好了,就醬子簡單! 整個傻眼呀~~~~

 

找到問題的方法就是把整個 Xpath 的元素從尾端開始慢慢往前刪除,但當初其實一樣的方法我也有做但是不知道怎麼沒察覺到這問題,反正遇到類似問題的話可以參考看看

arrow
arrow
    文章標籤
    HtmlAgilityPack C#
    全站熱搜

    魚魚 發表在 痞客邦 留言(0) 人氣()