bioinfo_lab 板


LINE

※ 引述《agomi (萊姆酒)》之銘言: : 在我們使用post方法的時候 : 因為網頁會跟我們要資料 所以要回傳資料給她們 : 在httpclient裡面用的是NameValuePair這個方法 : 以我同學的mail server為例 : http://mail.formula7.idv.tw : 我所準備的NameValuePair有下面這幾個 : NameValuePair action = new NameValuePair("action", "/cgi-bin/openwebmail/openwebmail.pl"); : NameValuePair userid = new NameValuePair("loginname", "我同學的帳號名稱"); : NameValuePair password = new NameValuePair("password", "我同學的密碼"); : NameValuePair login = new NameValuePair("logindomain", "mail.formula7.idv.tw"); : 我跟同學討論之後 他告訴我 我要注意每個具有<input>的標籤 : ex. <Input type = "text" name="loginname" ... OOXX ... > : 因為每個input都可能是網頁要求的參數 如果網頁沒有要到參數 開網頁就會失敗 : 問題是檢視原始碼的時候 可能有10個input標籤 : 但是我不知道網頁其實需要幾個輸入的參數 : 像上面這四個NameValuePair好像也是試誤法猜出來的 : 我如果只寫前面三個好像也可以跑出一樣的結果 : 不管怎樣 我已經可以用PostMethod把這些名值對傳入網頁 順利通過認證 : 而且我家遠端桌面台大很慢 (web of knowledge要台大ip才能開) : 所以我想先試試看對google作search動作 : 我的想法是google只有一個輸入欄位 : 所以我只準備一個NameValuePair : 寫成 NameValuePair search = new NameValuePair( "hl", "Agomi" ) ; : 表示我想在google上查詢Agomi : 但是傳回的statuscode是501 Google是用get方式傳資料 應該是用了post方式才會出現這樣錯誤 只不過我試了一下用get方式傳,似乎抓不到資料 : 內容是: : 10.5.2 501 Not Implemented : The server does not support the functionality required to fulfill the request. : This is the appropriate response when the server does not recognize the request : method and is not capable of supporting it for any resource. : google的原始碼中還有很多組input標籤 : 但是我看不出我該怎麼選擇 : 而且如果每次都要這樣猜 好像很不合理 ? : 如果有10個input標籤 : 那可是有10!種組合 : 所以我這邊的問題就是... : 有沒有更好的方法看出我們需要準備幾組NameValuePair來餵給網頁 ? : 有沒有辦法得知網頁需要幾個input parameter ? : 大家來討論看看吧 :) : 我想如果你還沒看到這邊 我上面寫的東西也可以算是我前鎮子的心得 :) 今天有一點點小小進展...可以抓到前十筆的snippet了 只是getPostMethod裡的SID的值要先上網做查詢動作檢示原始碼 看新的SID碼是什麼,替換新的就可以抓到資料了... 還有一點就是網頁不能關掉 裡面還有一些額外程式碼是自動抓SID的... 先用get抓到SID,再用post方式把SID傳過去 不過沒有成功...等我試好了再po上來了... ----------------------------------------------------- package httpclient; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.methods.GetMethod; import java.io.*; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; /** * <p>Title: </p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2006</p> * * <p>Company: </p> * * @author not attributable * @version 1.0 */ public class ISI { public static void main(String[] args) { ISI isi = new ISI(); HttpClient client = new HttpClient(); HttpMethod method = null; /*String SIDHtmlContent = isi.getSIDHTMLContent(client,method); Session session = new Session(); session.setCandidate(SIDHtmlContent); session.setRegex("SID=.*&Fun"); String SID = session.getSID(); String finalSID = session.normalizeSID(SID); */ client.getHostConfiguration().setHost("xs17.isiknowledge.com",80,"http"); method = isi.getPostMethod("finalSID"); try { client.executeMethod(method); System.out.println(method.getResponseBodyAsString()); } catch (IOException ex) { } method.releaseConnection(); } public String getSIDHTMLContent(HttpClient client,HttpMethod method) { String content = ""; method = new GetMethod("http://portal.isiknowledge.com/portal.cgi"); try { client.executeMethod(method); System.out.println(method.getStatusLine()); content = method.getResponseBodyAsString(); } catch (IOException ex) { } finally { //method.releaseConnection(); } return content; } private HttpMethod getPostMethod(String strSID){ PostMethod post = new PostMethod("/CIW.cgi"); NameValuePair Form = new NameValuePair("Form","HomePage"); NameValuePair Func = new NameValuePair("Func","Search"); NameValuePair SID = new NameValuePair("SID","C2L9BKp683@poBieCPd"); NameValuePair topic = new NameValuePair("topic","nod2"); post.setRequestBody(new NameValuePair[] { Form,Func,SID,topic}); return post; } } --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.137.133 ※ 編輯: aadean 來自: 140.112.137.133 (01/20 21:48)
1F:推 agomi:我昨天看你的jsp2.0技術手冊上面有寫到有個jsp指令可以抓到 01/21 10:23
2F:→ agomi:session id 而且自動加入網址之後回傳出來 但不知道httpclie 01/21 10:23
3F:→ agomi:有沒有類似的方法 01/21 10:24







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP