看板 java 關於我們 聯絡資訊
可以請問一下各位朋友,有人試過用 jsoup 來解析 html 網頁嗎 ? 個人本身寫了一些 android 小app,需要用到 jsoup 重點,問題來了 ! 我在解析的過程中,需要解析到 div 底下的東西,而 div 底下又有一層 div,問題出 在第二層 div 始終解不到東西。 ex. <div id="a"> <script>...</script> <center> <table> <tbody> <tr> <div id="b">...</div> </tr> <tbody> <table> <center> 大概是這樣,總之就是最裡面的 div 無法取得內容,我用過 chrome 看過,裡面確實有 資料。 所以來問一下大家有發生過這個問題嗎 ? 是 Bug 嗎 ? 後修正: 我後來有去試了一下,發現到說用 firebug 和 IE 看原始碼,div 這部分並沒有出現 ,上網 google 了一下,好像是因為動態 js 還什麼的問題,但用 chrome 看網頁元素 倒是可以正常的顯示出來。所以回歸問題,那就不是 jsoup 的問題了。 我自己的做法如下: Document doc = Jsoup.parse("網址", timeout); Elements element = doc.select("div#a").select("div#b"); for (Element e : element) { System.out.println(e.text()); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 121.254.88.10
PsMonkey:沒有提供自己的原始作法,故鎖文 05/09 09:13
※ 編輯: jackzzkao 來自: 121.254.88.10 (05/09 23:09)
PsMonkey:我只想問... 為甚麼你不直接 select("div#b") 就好? 05/10 11:06
PsMonkey:雖然脫離 Java 主題,不過還是講一下 05/10 11:07
PsMonkey:html 不等於 DOM tree 的年代已經很久了...... 05/10 11:08
bitlife:把select("div#a")結果單一化成Element而非Elements再試試 05/10 11:18
bitlife:當然如果是動態由js產生的element,jsoup永遠select不到 05/10 11:19
jackzzkao:問題應該是 js 的問題,後來我才發現,所以PO錯板很 05/10 14:04
jackzzkao:不好意思,如果是動態的,chrome又可以看到,那是怎麼做的? 05/10 14:07
bitlife:瀏覽器看到的是執行期結果,Jsoup是html源碼層次,兩者不同 05/10 18:17