迷失的風

          就這樣活著
          隨筆 - 1, 文章 - 1, 評論 - 1, 引用 - 0
          數據加載中……

          2008年6月16日

          PostMethod獲取post提交的頁面代碼

          http://lsg.cnki.net/grid20/Brief.aspx?ID=1&classtype=&systemno=&NaviDatabaseName=&NaviField=

          這個是中國期刊網的檢索請求,我現在需要通過這個來獲取檢索出來的信息,解決方法已經有了,就是得不到檢索信息,查詢內容是空的。
          應該是少add了一些檢索所需內容。

          下面是我的代碼
           1import java.io.IOException; 
           2import java.util.Calendar; 
           3import java.util.GregorianCalendar; 
           4import org.apache.commons.httpclient.HttpClient; 
           5import org.apache.commons.httpclient.HttpException; 
           6import org.apache.commons.httpclient.HttpStatus; 
           7import org.apache.commons.httpclient.methods.PostMethod; 
           8
           9
          10public class PostTest 
          11
          12public static void main(String[] args)
          13
          14PostMethod postMethod = new PostMethod("http://lsg.cnki.net/grid20/Brief.aspx?ID=1&classtype=&systemno=&NaviDatabaseName=&NaviField="); 
          15postMethod.addParameter("advancedvalue1","java"); 
          16postMethod.addParameter("advancedfield1","主題"); 
          17postMethod.addParameter("yearstart","1979"); 
          18postMethod.addParameter("yearend",String.valueOf(GregorianCalendar.getInstance().get(Calendar.YEAR))); 
          19postMethod.addParameter("RecordsPerPage","20"); 
          20postMethod.addParameter("SearchRange","All"); 
          21postMethod.addParameter("searchmatch","0"); 
          22postMethod.addParameter("order","dec"); 
          23postMethod.addParameter("display","chinese"); 
          24postMethod.addParameter("NaviDatabaseName","ZJCLS"); 
          25postMethod.addParameter("encode","gb"); 
          26postMethod.addParameter("VarNum","1"); 
          27postMethod.addParameter("singleleafcode","J"); 
          28postMethod.addParameter("strNavigatorName",",A,B,C,D,E,F,G,H,I,J"); 
          29postMethod.addParameter("strNavigatorValue",",理工A(數學物理力學天地生),理工B(化學化工冶金環境礦業),理工C(機電航空交通水利建筑能源),農業,醫藥衛生,文史哲,政治軍事與法律,教育與社會科學綜合,電子技術及信息科學,經濟與管理"); 
          30HttpClient client = new HttpClient(); 
          31client.setConnectionTimeout(1000 * 60); 
          32int status=0
          33try 
          34status = client.executeMethod(postMethod); 
          35}
           catch (HttpException e) 
          36// TODO Auto-generated catch block 
          37e.printStackTrace(); 
          38}
           catch (IOException e) 
          39// TODO Auto-generated catch block 
          40e.printStackTrace(); 
          41}
           
          42if(status==HttpStatus.SC_OK) 
          43makeResponseObject(postMethod.getResponseBodyAsString()); 
          44}
           else 
          45}
           
          46postMethod.releaseConnection(); 
          47
          48}
           
          49// 根據HTTP請求后返回的字串生成結果封裝類的實例 
          50private static void makeResponseObject(String sResponse) 
          51System.out.println("-------------------"+sResponse); 
          52System.out.println("-------------------"); 
          53String regExNums = "<TD\\s*style=\"FONT-SIZE:\\s*9pt;\\s*COLOR:\\s*#000000;\\s*WORD-WRAP:\\s*break-word\"\\s*vAlign=center\\s*bgColor=#f4f5f6\\s*height=30>\\s*共有記錄\\s*(\\d+)\\s*條\\s* \\s*</TD>"
          54String regExData = "<TR>\\s*<TD\\s*style=\"FONT-SIZE:\\s*9pt;\\s*WORD-WRAP:\\s*break-word\"\\s*(?:align=left)?\\s*bgColor=#\\S+\\s*>([\\s\\S]*?)</TR>"
          55String regExPage = "<TD\\s*style=\"FONT-SIZE:\\s*9pt;\\s*COLOR:\\s*#000000;\\s*WORD-WRAP:\\s*break-word\"\\s*vAlign=center\\s*bgColor=#f4f5f6\\s*height=30>\\s*<A\\s*href=\"(.*)\">(?:上頁|下頁)</A>"
          56}
           
          57
          58}
           
          59

          哪位大哥幫幫忙,解決下

          posted @ 2008-06-16 10:25 迷失的風 閱讀(3261) | 評論 (1)編輯 收藏

          主站蜘蛛池模板: 娄烦县| 宁晋县| 新龙县| 巴彦淖尔市| 泽州县| 鄂州市| 怀来县| 怀宁县| 衡阳县| 思茅市| 黎平县| 宝鸡市| 股票| 美姑县| 诸城市| 孝感市| 本溪市| 墨玉县| 宜州市| 浙江省| 江川县| 上高县| 新巴尔虎右旗| 星子县| 水富县| 淮南市| 石阡县| 松阳县| 南宁市| 桓仁| 莱芜市| 榕江县| 宁陕县| 南和县| 霍林郭勒市| 洞口县| 洛宁县| 保康县| 金溪县| 响水县| 邢台县|