|
2008年6月16日
http://lsg.cnki.net/grid20/Brief.aspx?ID=1&classtype=&systemno=&NaviDatabaseName=&NaviField=
这个是中国期刊网的检索请求,我现在需要通过这个来获取检索出来的信息,解决方法已经有了,就是得不到检索信息,查询内容是空的。
应该是少add了一些检索所需内容。
下面是我的代码
1 import java.io.IOException;
2 import java.util.Calendar;
3 import java.util.GregorianCalendar;
4 import org.apache.commons.httpclient.HttpClient;
5 import org.apache.commons.httpclient.HttpException;
6 import org.apache.commons.httpclient.HttpStatus;
7 import org.apache.commons.httpclient.methods.PostMethod;
8
9
10 public class PostTest {
11
12 public static void main(String[] args) {
13
14 PostMethod postMethod = new PostMethod("http://lsg.cnki.net/grid20/Brief.aspx?ID=1&classtype=&systemno=&NaviDatabaseName=&NaviField=");
15 postMethod.addParameter("advancedvalue1","java");
16 postMethod.addParameter("advancedfield1","主题");
17 postMethod.addParameter("yearstart","1979");
18 postMethod.addParameter("yearend",String.valueOf(GregorianCalendar.getInstance().get(Calendar.YEAR)));
19 postMethod.addParameter("RecordsPerPage","20");
20 postMethod.addParameter("SearchRange","All");
21 postMethod.addParameter("searchmatch","0");
22 postMethod.addParameter("order","dec");
23 postMethod.addParameter("display","chinese");
24 postMethod.addParameter("NaviDatabaseName","ZJCLS");
25 postMethod.addParameter("encode","gb");
26 postMethod.addParameter("VarNum","1");
27 postMethod.addParameter("singleleafcode","J");
28 postMethod.addParameter("strNavigatorName",",A,B,C,D,E,F,G,H,I,J");
29 postMethod.addParameter("strNavigatorValue",",理工A(数学物理力学天地生),理工B(化学化工冶金环境矿业),理工C(机电航空交通水利建筑能源),农业,医药卫生,文史哲,政治军事与法律,教育与社会科学综合,电子技术及信息科学,经济与管理");
30 HttpClient client = new HttpClient();
31 client.setConnectionTimeout(1000 * 60);
32 int status=0;
33 try {
34 status = client.executeMethod(postMethod);
35 } catch (HttpException e) {
36 // TODO Auto-generated catch block
37 e.printStackTrace();
38 } catch (IOException e) {
39 // TODO Auto-generated catch block
40 e.printStackTrace();
41 }
42 if(status==HttpStatus.SC_OK) {
43 makeResponseObject(postMethod.getResponseBodyAsString());
44 } else {
45 }
46 postMethod.releaseConnection();
47
48 }
49 // 根据HTTP请求后返回的字串生成结果封装类的实例
50 private static void makeResponseObject(String sResponse) {
51 System.out.println("-------------------"+sResponse);
52 System.out.println("-------------------");
53 String 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>";
54 String 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>";
55 String 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
哪位大哥帮帮忙,解决下
|