[問題] 使用 Jsoup 解析 html 發生了問題

看板java作者 (Jackkao)時間13年前 (2012/05/09 00:30), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
可以請問一下各位朋友,有人試過用 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

05/09 09:13, , 1F
沒有提供自己的原始作法,故鎖文
05/09 09:13, 1F
※ 編輯: jackzzkao 來自: 121.254.88.10 (05/09 23:09)

05/10 11:06, , 2F
我只想問... 為甚麼你不直接 select("div#b") 就好?
05/10 11:06, 2F

05/10 11:07, , 3F
雖然脫離 Java 主題,不過還是講一下
05/10 11:07, 3F

05/10 11:08, , 4F
html 不等於 DOM tree 的年代已經很久了......
05/10 11:08, 4F

05/10 11:18, , 5F
把select("div#a")結果單一化成Element而非Elements再試試
05/10 11:18, 5F

05/10 11:19, , 6F
當然如果是動態由js產生的element,jsoup永遠select不到
05/10 11:19, 6F

05/10 14:04, , 7F
問題應該是 js 的問題,後來我才發現,所以PO錯板很
05/10 14:04, 7F

05/10 14:07, , 8F
不好意思,如果是動態的,chrome又可以看到,那是怎麼做的?
05/10 14:07, 8F

05/10 18:17, , 9F
瀏覽器看到的是執行期結果,Jsoup是html源碼層次,兩者不同
05/10 18:17, 9F
文章代碼(AID): #1FgKeSiX (java)