如何取得網頁上, 動態選項的 URL |
尚未結案
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
1. 請問您是要寫個 AP 去 Web Server 抓網頁 ?
(然後分析 動態選項的 URL, 及 javascript 中 function() 內, 訂定的 URL 嗎 ?) 動態選項的 URL => 因為是 user 選擇後送出才有的資訊, 所以抓不到; 您可以在 Web Server 用 php, asp, cgi ... 接收送出的資訊 javascript 中 function() 內訂定的 URL => 固定死的就可以抓到 2. 請問您是要寫個 Web Server ? 動態選項的 URL => 可以抓到
javascript 中 function() 內訂定的 URL => 固定死的就可以抓到
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
1.讀取網頁原始內容 (例如讀到 Memo 或 RichEdit ), 分析出每個網址
(一般是抓 抓 a href 後面網址, 但是 JavaScript 或 SELECT/OPTION 中的可能沒有 a href 開始; 另外注意某些網址可能有 http 開始, 沒有 http 開始, www 開始, 沒有 www 開始, ) 2.逐一嘗試抓取網址指向的網頁, 看看能否抓到, 下面 code 供參考
uses IdHTTP, IdException; procedure TForm1.FormCreate(Sender: TObject); var code2 : integer; begin IdHTTP1.HandleRedirects:=true; try // 不加上 http 會錯誤 // Memo1.Text:=IdHTTP1.Get('www.k.com.tw'); Memo1.Text:=IdHTTP1.Get('http://www.k.com.tw/'); code2 := IdHTTP1.ResponseCode; except on E: EIdHTTPProtocolException do begin Showmessage('EIdHTTPProtocolException'); case e.ReplyErrorCode2 of 404: ShowMessage('找不到網頁'); end; end; on E: EIdSocketError do begin // Showmessage(E.Message); Memo1.Lines.Add(E.Message); code2 := IdHTTP1.ResponseCode; end; end; Memo1.Lines.Add('Finial!'); If Assigned(IdHTTP1) Then IdHTTP1.Free; // 用.Free來釋放物件實體 end;
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
不想漏抓, 那就搜尋 . (句點) , 搜到就當成網域, 再分析出網址, 然後去抓網頁 (但是很可能誤判) 1個句點的網域 (例如 come.to) (網址 come.to/aaa.htm )
2個句點的網域 (例如 www.hinet.net)
3個句點的網域 (例如 www.asus.com.tw)
4個句點的網域 (例如 www.ee.nsysu.edu.tw)
...
N個句點的網域 應該沒有萬無一失的方法, 不然 teleport 早就用了
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
http://ec2.pchome.com.tw/exh/00000001/index.htm 內 var other_type;
var left_show = true;
var exh_no = new Array('00000000','00000001','00000006','00000075','00000002','00000090','00000011','00000018','00000091','00000124','00000019','00000131','00000121','00000021','00000053','00000044','00000020','00000077','00000111','00000034','00000010','00000022','00000054','00000037','00000023','00000059','00000035','00000125','00000007','00000060','00000112','00000003','00000123','00000113','00000102','00000063','00000025','00000008','00000004','00000009','00000103','00000092','00000083','00000026','00000029','00000071','00000005','00000104','00000101','00000093','00000046','00000030','00000056','00000027','00000068','00000116','00000031','00000057','00000096','00000107','00000105','00000094','00000033','00000058','00000120','00000119','00000106','00000085','00000049');
var exh_parent = new Array('00000000','00000001','00000006','00000006','00000001','00000090','00000006','00000018','00000090','00000006','00000019','00000021','00000020','00000021','00000020','00000021','00000020','00000022','00000021','00000020','00000006','00000022','00000022','00000020','00000023','00000022','00000020','00000006','00000006','00000022','00000112','00000001','00000021','00000023','00000020','00000022','00000018','00000006','00000001','00000006','00000020','00000090','00000022','00000018','00000019','00000023','00000001','00000020','00000006','00000090','00000023','00000019','00000022','00000018','00000018','00000001','00000019','00000022','00000006','00000023','00000020','00000090','00000019','00000001','00000090','00000021','00000020','00000018','00000023');
var exh_name = new Array('首頁','工具軟體','辦公室軟體','Office系列','防毒軟體','Game','翻譯軟體','影像多媒體','PC Game','名片管理','網路應用','象棋圍棋','PDA超值組合','居家生活','Palm軟體','空間設計','PDA軟體','軟體教學','風水算命','工具軟體','文件管理','學習','英文寫作','休閒娛樂','圖庫','實用英語','商務應用','專案管理','簡報範本','商用英語','企業軟體','系統工具','國際電話卡','專業圖庫','全民英檢','全民英檢','影像處理','輸入法','燒錄軟體','字型','商用英語','JAVA Game','日文學習','影音編輯','網路安全','圖片素材','備份還原','實用英語','會計實務','PS2','實用插圖','架站工具','進修學習','影音播放','繪圖軟體','程式設計','網頁製作','兒童教育','企管財務','動態圖庫','托福考試','XBOX','網路工具','手機軟體','XBOX週邊配件','個人理財','日文學習','數位沖印','信箋賀卡');
var exh_color = new Array('FFC626','2797FF','8BD62B','','2797FF','FF8476','','9E76F6','','','E0982A','','','47D327','','','3DC7DC','','','','','49D19B','','','FF9733','','','','','','0065CB','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
var exh_bgcolor = new Array('FFF6D5','E6F5FF','EEFBDE','','E6F5FF','FFF0EF','','F5F0FF','','','FFF6E7','','','EBFFE7','','','E9FCFF','','','','','E5FFF5','','','FEF2E6','','','','','','F0F2F2','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
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(.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') (make_tab());
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
javascript 中你也想要?
如果是我,我會考慮幾個方向
1. html tag parser 出來。存在一個緩衝區,以做為我運算使用。
然後解析它的”動作(javascript)”有多少。這裏就像是普通的網頁資料了。
2.再依第1個動作所產生的”動作”到原始html中去找它的javascript code。
當然。這個時候你就要寫一個小小的編譯程式。來對javascript code 作編譯了。這方面,你可以參考一些 compiler 的書去做。也可以去找找 yacc 這種東東,看在delphi上有沒有支援了。
加油。^_^
|
760729
一般會員 發表:32 回覆:51 積分:16 註冊:2004-09-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |