JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Servlet/JSP 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 jsp無法抓取整個網頁碼
as0955344054





發文: 107
積分: 0
於 2014-10-13 20:11 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
想請問一下
我想抓取某個網頁的某個table裡的數值等等
我找到了jsoup這個套件
他可抓取網頁原始碼並分析
但有些東西網頁原始碼並沒有辦法完整的抓回整個網頁的每個東西

查過資料後有人說是因為javascript產生的數值,只是抓原始碼的話會抓不到
不過在瀏覽器上檢查元素可以找到
請問一下有甚麼辦法抓到完整的網頁碼嗎??


reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2014-10-14 09:17 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
"想抓取某個網頁的某個table裡的數值"

請問這個TABLE 有ID 這個ATTRIBUTE 嗎?

e.g.
<table id=abc>
........
</table>


reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2014-10-14 17:38 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<table id="gv-table-rsg">
                        <caption>RefSeqGene Mapping</caption>
                        <thead>
                            <tr>
                                <th>RefSeqGene</th>
                                <th>Gene (ID)</th>
                                <th>SNP to RefSeqGene</th>
                                <th>Position</th>
                                <th>Allele</th>
                            </tr>
                        </thead>
                        <tfoot>
                        </tfoot>
                        <tbody>
                        </tbody>
                        </table>


原始碼如下

但是網頁顯示tbody裡是有東西的
看了程式碼應該是javascript產生丟進去的!!
但是我需要抓出tbody裡的資料


reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:as0955344054]
pclevin





發文: 323
積分: 0
於 2014-10-14 17:59 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
基於安全考量,你不可能抓到別人網頁的jsp程式碼。
你只能抓到html的原始碼。


reply to postreply to post
我的網誌
http://pclevin.blogspot.com
作者 Re:jsp無法抓取整個網頁碼 [Re:pclevin]
as0955344054





發文: 107
積分: 0
於 2014-10-14 20:24 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
但是"檢視元素"上可以抓到這筆資料
只是原始碼沒辦法
應該是有辦法抓到吧??
所抓的東西不是jsp的原始碼
而是可能經過js運算的結果


reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2014-10-15 09:23 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我的做法在CHROME 裡面開你的JSP, 然後按F12,再click console,最後在console 內打javascript code 去抓取table 內的東西,這個solution ok 嗎?
如果OK 我才做


reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2014-10-15 14:20 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
SORRY 或許我表示得不夠清楚
我要抓的資料是"外部"別人網頁的某個table的值
而這過程必須程式運作
不是手動(而是使用)JAVA(JSP)

功能大概是
在別人開啟我的JSP網頁時可以去別人的網站抓取某個table值回來顯示在我的網頁

如果只是抓原始碼回來目前我已經找到方法,但有些欄位的值是經過javascript運算在餵進去cell裡的
這種情況抓回原始碼並不能抓到cell裡面的東西cell裡的東西是空的,沒辦法抓到我需要的數值


reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:as0955344054]
pclevin





發文: 323
積分: 0
於 2014-10-15 16:45 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
你不是用jsoup ,這應該就可以了呀!
你的程式是如何寫的呢?
你是抓那個url呢?


reply to postreply to post
我的網誌
http://pclevin.blogspot.com
作者 Re:jsp無法抓取整個網頁碼 [Re:pclevin]
as0955344054





發文: 107
積分: 0
於 2014-10-15 20:19 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
jsoup 不是不支援 javascript嗎

http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?rs=1799782

GRCh38   106  19  43553422  NT_011109.17  16312548  Rev  G  Fwd  view  mapup
GRCh37.p13  105  19  44057574   NT_011109.16  16325792  Rev  G  Fwd  view  blast

我要抓的資料為這兩排~
還是我程度不夠 這兩行並不是javascript餵進去的??
我現在正在使用htmlunit測試但就算執行javascript目前也依然是空的

如果得空,可否請高手嘗試用程式抓出此兩行
同時已經盡量爬文了


as0955344054 edited on 2014-10-15 20:49
reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:as0955344054]
jk47





發文: 159
積分: 0
於 2014-10-16 11:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
as0955344054 wrote:
jsoup 不是不支援 javascript嗎

http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?rs=1799782

GRCh38   106  19  43553422  NT_011109.17  16312548  Rev  G  Fwd  view  mapup
GRCh37.p13  105  19  44057574   NT_011109.16  16325792  Rev  G  Fwd  view  blast

我要抓的資料為這兩排~
還是我程度不夠 這兩行並不是javascript餵進去的??
我現在正在使用htmlunit測試但就算執行javascript目前也依然是空的

如果得空,可否請高手嘗試用程式抓出此兩行
同時已經盡量爬文了


因為樓主要的資料是JAVASCRIPT產生,所以在連接時若不支援JAVASCRIPT,是看不到資料的。
而樓主一直沒弄懂,使用的套件和瀏覽器上看到是有些許不同的。運作原理留給有心人。
而根據樓主的需求,是需要一個類瀏覽器的東西,
是以htmlunit是可以滿足樓主的需求,因為它支持JAVASCRIPT,而且我也確定是可以抓的到值。
很可能樓主寫法不對。請參考下列連結,因htmlunit版本不同,寫法會有差異。

純htmlunit寫法
http://shenbai.iteye.com/blog/1985844
htmlunit+jsoup 處理方式
http://www.cnblogs.com/StruggleBird/p/3373350.html

補產出檔案,這樣有真相,至於怎麼抓,那是樓主的工作了Wink

output.txt (333.57k)


jk47 edited on 2014-10-16 11:45
reply to postreply to post
喝著濃濃的JAVA,看著MYSQL耀出水面
旁邊NetBeans抓著GlassFish與DUKE在嬉鬧
現在手上又拿著ORACLE在研究
(ORACLE=甲骨文=契文)
作者 Re:jsp無法抓取整個網頁碼 [Re:jk47]
as0955344054





發文: 107
積分: 0
於 2014-10-16 13:21 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
非常感謝您 確定可以抓出 那我再多多研究
以前沒有做過去別網頁抓資料
經爬文後
先嘗試過jsoup但發現javascript產生的值無法抓出
所以之後找到套件htmlunit去執行無介面瀏覽器
我認為用瀏覽器應該就可以執行javascript理論上應該能達到我要的功能
但是目前還沒有成功

不過大大已經證實此方法一定可以解決我的問題 接下來就是我的功課了^^
我想我用htmlunit卻還是抓不出需要的值,應該是我去抓去page時javascript還沒有跑完
您給我的網站對我應該有很大的幫助
過程中有瓶頸再來請教大大
謝謝


as0955344054 edited on 2014-10-16 13:50
reply to postreply to post
作者 Re:jsp無法抓取整個網頁碼 [Re:as0955344054]
ChuanYuan





發文: 1
積分: 0
於 2016-07-04 10:47 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
剛好我最近也碰到這個問題,在這想請問我想利用Firefox的greasemonkey寫一個腳本去更改其他網頁的javascript,
但是一樣只能透過"檢視元素"才能看到我要的網頁碼,所以我只能透過htmlunit才能實現我要的嗎?
還是有其他辦法呢?


reply to postreply to post
» JWorld@TW »  Servlet/JSP 討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8