討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
如何擷取網頁中所有的 URL (難度高)
更改我的閱讀文章字型大小
作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/9/6 下午 02:37:02
網頁中 URL 的表示法有標準格式, 有包含在 flash 檔案中, 有的是由 javascript 及 vbscript 的變數及陣列來表示 如 (http://ec2.pchome.com.tw/case/000017/00001700.htm) 網頁

<script language=JavaScript>
  var other_type;
  var left_show = true;
  var exh_no = new Array('00000000','00000001','00000075','00000002','00000006','00000011','00000090','00000124','00000091','00000018');
  var exh_parent = new Array('00000000','00000001','00000006','00000001','00000006','00000006','00000090','00000006','00000090','00000018');
  var exh_name = new Array('首頁','工具軟體','Office系列','防毒軟體','辦公室軟體','翻譯軟體','Game','名片管理','PC Game','影像多媒體');
  var exh_color = new Array('FFC626','2797FF','','2797FF','8BD62B','','FF8476','','','9E76F6');
  var exh_bgcolor = new Array('FFF6D5','E6F5FF','','E6F5FF','EEFBDE','','FFF0EF','','','F5F0FF');
  var ec2_img = 'http://ec2img.pchome.com.tw';
  var ec2_www_status = false;
  var exh_kind = document.main.exh_kind.value;
  //if(ec2_img.match(/ec2\w*\.pchome\.com\.tw/)) ec2_www_status = true;
  if(window.location.host.match(/ec2(ssl)?\.\w*pchome\.com\.tw/)) ec2_www_status = true;
  for(var i in exh_no){
    if(exh_no[i] != exh_parent[i]) continue;
    if(!eval("var main_" + exh_no[i])){
     eval("var main_" + exh_no[i] + " = new make_exh('"+ exh_no[i] +"'," + i + ")");
     eval("left_bar.main_" + exh_no[i] + " = main_" + exh_no[i]);
    }
  }

  for(i in exh_no){
    if(!eval("var sub_" + exh_no[i])) eval("var sub_" + exh_no[i] + " = new make_exh('"+ exh_no[i] +"'," + i + ")");
    if(exh_no[i] != exh_parent[i]) eval("left_bar.main_" + exh_parent[i] + ".sub_" + exh_no[i] + "= sub_" + exh_no[i]);
  }
  for(i in exh_no){
    if(exh_kind == exh_no[i]){
     if(exh_no[i] == exh_parent[i]){
     //left_sub = default_exh(left_bar,exh_parent[i]);
     }else{
     left_sub = exh_no[i];
     }
     left_main = exh_parent[i];
     break;
    }
  }
  if (other_type != 'other') document.write(make_tab());
</script>

請問高手們, 該如何取得完整的 URL 路徑? 謝謝
作者 : actpost(pigdong)
[ 貼文 40 | 人氣 2381 | 評價 170 | 評價/貼文 4.25 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/9/9 上午 12:26:38
llinux下抓取網頁後利用shell script應該可以把url後的網址抓下來!
如真有需要再說吧!
pigdong@pchome.com.tw
作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/9/9 上午 08:26:18
pigdong 您好:

我非常需要的, 不知是否有更詳細的資料.
作者 : actpost(pigdong)
[ 貼文 40 | 人氣 2381 | 評價 170 | 評價/貼文 4.25 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人andyshieh註記此篇回應為很有道理 2004/9/17 下午 10:08:34
sorry!本人可能搞錯你的意思了,
本人只會把檔案中己有的(顯示)的url(http:)抓出來,而且有很多可能不是你要的
而且如何把 內含變數的部份抓出來本人功力不足!請見諒!
本人的原始做法(mozilla=>檢視=>此頁原始內容=>檔案=>另存新檔=>test.txt)
以上如果是用截取大量網頁可能要用wget 跟shell script的迴圈處理
cat test.txt|grep http: >http.text
而http.text中就截取網頁中含http:的 行
如何再截取先生你要的東西!本人就不知道了

做法太簡單,本人想想可能不是您要的東西!


作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/9/18 上午 10:40:46
無論如何, 還是非常謝謝您
作者 : murpphy(Killer)
[ 貼文 80 | 人氣 522 | 評價 440 | 評價/貼文 5.5 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/9/18 上午 11:18:03
寫一支http request程式將網頁讀下來不就得了。
作者 : ien_soung(ㄚ松) 貼文超過200則人氣指數超過30000點
[ 貼文 394 | 人氣 31500 | 評價 1250 | 評價/貼文 3.17 | 送出評價 32 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/9 下午 05:25:00
有個解法~~~
我知到有許多開放原始碼的流覽器都有這種功能
表列超連結
這要靠你自己去找了
作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/11 上午 10:21:18
謝謝
作者 : chiuinan2(青衫)討論區板主 Visual C++ .NET卓越專家VC++一代宗師Visual Basic優秀好手資訊類作業求救卓越專家一般曠世奇才程式設計甘苦談優秀好手C++ Builder優秀好手上班族的哈拉園地優秀好手C++頂尖高手Assembly優秀好手貼文超過3000則人氣指數超過150000點
[ 貼文 3732 | 人氣 170106 | 評價 34520 | 評價/貼文 9.25 | 送出評價 125 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/11 下午 02:17:16
想寫網頁自動抓取程式的人, 應該都有同樣的需要吧? 不過解法有點困難了些. 如果只是基本地從html語法裡, 取出所有鏈結的url, 應該大部份的人都會. 困難點在於url隱藏在vbscript/javascript/flash檔案, 甚至java applet或ActiveX元件裡. 有些網頁還必須經過使用者認證的手續. 因此即使google也無法抓取全部的網頁. 不過有些地方是有一些解法:

1.vbscript/javascript: 唯一的方法, 只有寫interpreter去執行script, 才可能將url取出來. 雖然browser source code可以拿得到, 但用在商用軟體上會有著作權上的問題. 自己寫interpreter也不是很困難, 問題是蠻耗工的, 成本效益上是否值得, 還需要評估.

2.flash: 主要是去剖析檔案格式, 取出url. 如果知道檔案格式的話, 就容易解了. 所幸網路上還有相關資料可參考, 因此還不算無解.

3.java applet/ActiveX: 這個部份目前還沒有什麼好的想法來解決

4.使用者認證: 可以將使用者的動作capture下來, 然後控制IE自動"重播", 進入網站抓取網頁. 只是這個方法太過固定, 一但網站版面變更就完了, 而且一次只能適用於一個網站. 不算是很好的解決.
作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/11 下午 05:53:25
你說的很有理, 是困難重重, flash 若經過加密也是無解的, 你說 browser source code可以拿得到, 不知你手上是否有, 可提供參考碼?
作者 : chiuinan2(青衫)討論區板主 Visual C++ .NET卓越專家VC++一代宗師Visual Basic優秀好手資訊類作業求救卓越專家一般曠世奇才程式設計甘苦談優秀好手C++ Builder優秀好手上班族的哈拉園地優秀好手C++頂尖高手Assembly優秀好手貼文超過3000則人氣指數超過150000點
[ 貼文 3732 | 人氣 170106 | 評價 34520 | 評價/貼文 9.25 | 送出評價 125 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/11 下午 06:39:07
可以去download mozilla browser source code:

http://www.mozilla.org/download-mozilla.html

蠻大的, 要全看懂也不是那麼容易. 很累... @_@;
作者 : hkln(HKLN.net) Perl卓越專家Oracle卓越專家資訊類作業求救優秀好手一般優秀好手程式設計甘苦談優秀好手C#卓越專家貼文超過2000則人氣指數超過100000點
[ 貼文 2135 | 人氣 122272 | 評價 14600 | 評價/貼文 6.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/16 上午 10:09:37
>網頁中 URL 的表示法有標準格式, 有包含在 flash 檔案中, 有的是由 javascript 及 vbscript 的變數及陣列來表示 如 (http://ec2.pchome.com.tw/case/000017/00001700.htm) 網


我記得有些軟體例如 HTTP Explorer ,它可以攔截 IE 所有的 HTTP Request 和 Reponse,
只要在 Request Header 就能夠看到網址了。
不知您是否要這樣的工具呢?
作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/16 下午 10:20:01
謝謝你青杉, 我會去下載看看.
作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/16 下午 10:21:10
HKLN.net 你好:

若有的話, 我是很想試試看.


謝謝
作者 : hkln(HKLN.net) Perl卓越專家Oracle卓越專家資訊類作業求救優秀好手一般優秀好手程式設計甘苦談優秀好手C#卓越專家貼文超過2000則人氣指數超過100000點
[ 貼文 2135 | 人氣 122272 | 評價 14600 | 評價/貼文 6.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/17 上午 11:54:26
>HKLN.net 你好:
>若有的話, 我是很想試試看.

忘記寫網址給您:
http://www.overture-computing.com/httpExplorer/httpExplorer.htm

這樣您不需要知道程式在幹什麼,也能夠知道 IE 訪問了什麼網址。
作者 : andyshieh(andy)
[ 貼文 49 | 人氣 9155 | 評價 0 | 評價/貼文 0 | 送出評價 19 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/10/17 下午 10:34:19
謝謝你 HKLN.net
 板主 : 小朱
 > 高手過招區 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 高手過招區 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
高手過招區
1 冼鏡光 410 
2 長長 350 
3 eBoy 290 
4 Benson 280 
5 速定 260 
6 HKLN.net 240 
7 青衫 210 
8 ozzy 190 
9 冷眼 150 
10 John 150 
高手過招區
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125