运行的时候,需要Log4j.jar
最好使用命令运行
java -cp log4j.jar,. XingMing > xingming.txt
仅供娱乐。
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.net.HttpURLConnection;
importjava.net.MalformedURLException;
importjava.net.URL;
importorg.apache.log4j.Logger;
publicclassXingMing...{
staticfinalLoggerlog=Logger.getLogger(XingMing.class);
publicstaticStringread(StringurlStr)...{
try...{
URLurl=newURL(urlStr);
HttpURLConnectionconnection=(HttpURLConnection)url
.openConnection();
connection.connect();
InputStreamin=connection.getInputStream();
BufferedReaderread=newBufferedReader(newInputStreamReader(in));
StringBufferbuf=newStringBuffer();
Stringline=null;
while((line=read.readLine())!=null)...{
buf.append(line);
}
returnbuf.toString();
}catch(MalformedURLExceptione)...{
returnnull;
}catch(IOExceptione)...{
returnnull;
}
}
publicstaticStringfind(Stringstr,StringbeginStr,StringendStr)...{
finalintlength=beginStr.length();
intindex=str.indexOf(beginStr);
Stringresult=null;
if(index!=-1)...{
intindex2=str.indexOf(endStr,index+length);
if(index2!=-1)...{
result=str.substring(index+beginStr.length(),index2);
}
}
returnresult;
}
publicstaticStringfindName(Stringsource,Stringname)...{
//value=我的姓名『XX』的分析:
returnfind(source,"value=我的姓名『","』的分析");
}
publicstaticStringfindScore(Stringsource,Stringname)...{
//<fontsize=3>姓名评分:</font><fontcolor=0000ffsize=5face="Broadway
//BT,楷体">99.5</font>
returnfind(
source,
"<fontsize=3>姓名评分:</font><fontcolor=0000ffsize=5face="BroadwayBT,楷体">",
"</font>");
}
publicstaticStringfindHZ(Stringsource,Stringname)...{
returnfind(source,name+"</font></td><td><fontcolor=aaaaaa>",
"</font>");
}
publicstaticStringfindSound(Stringsource,Stringname)...{
returnfind(source,name+"</font></td><td><fontcolor=aaaaaa>",
"</font>");
}
publicstaticStringfindWuXing(Stringsource,Stringsound)...{
//<fontcolor=aaaaaa>qian</font></td><td>12</td><td>木</td></tr>
Strings1=find(source,"<fontcolor=aaaaaa>"+sound
+"</font></td><td>","</td>");
returnfind(source,"<fontcolor=aaaaaa>"+sound+"</font></td><td>"
+s1+"</td><td>","</td>");
}
publicstaticintcountStr(Stringsource,Stringstr)...{
intcnt=0;
intidx=source.indexOf(str);
while(idx!=-1)...{
cnt++;
idx=source.indexOf(str,idx+str.length());
}
returncnt;
}
publicstaticvoidmain(String[]args)throwsIOException...{
finalcharfirstChar='一';
finalcharlastChar='龥';
for(chari=firstChar;i<lastChar;i++)...{
//System.out.print(i);
}
//最大开启100个线程,可以加快查询速度.
intmaxThread=100;
intstep=(lastChar-firstChar)/maxThread;
for(inti=0;i<maxThread;i++)...{
charstart=(char)(firstChar+i*step);
charend=(char)(firstChar+i*step+step-1);
System.out.println("开启"+(i+1)+"处理:"+start+"-"+end
+(char)(end+1));
newCallThread(start,end).start();
}
}
staticclassCallThreadextendsThread...{
privatecharstart;
privatecharend;
privateStringinfo;
CallThread(charstart,charend)...{
this.start=start;
this.end=end;
this.info=this.start+"-"+this.end;
}
publicvoidrun()...{
//姓
finalcharyouname1='赵';
finalStringurl="http://www.xingming.net/cmjg-mz.asp?sex=女&youname1="
+youname1+"&youname2=";
Stringyouname2;
Stringwebinfo=null;
for(chari=start;i<=end;i++,webinfo=null)...{
//名字规则自己取吧.
//youname2="良"+i;
//youname2=""+i+i;
youname2="东"+i;
for(intj=0;j<5&&webinfo==null;j++)...{
webinfo=XingMing.read(url+youname2);
}
if(webinfo==null)...{
log.warn("获取名字["+youname1+youname2+"]失败");
continue;
}
StringwebName=XingMing.findName(webinfo,"["+youname2
+"]");
StringwebScore=XingMing.findScore(webinfo,"["+youname2
+"]");
StringwebHZ=XingMing.findHZ(webinfo,""+i);
StringwebSound=XingMing.findSound(webinfo,webHZ);
StringwebWuxing=XingMing.findWuXing(webinfo,webSound);
String天格数=find(webinfo,"天格->","(");
String人格数=find(webinfo,"人格->","(");
String地格数=find(webinfo,"地格->","(");
String外格数=find(webinfo,"外格->","(");
String总格数=find(webinfo,"总格->","(");
String天格解析=find(webinfo,"天格"+天格数+"的解析</td><td>(",")");
String人格解析=find(webinfo,"人格"+人格数+"的解析</td><td>(",")");
String地格解析=find(webinfo,"地格"+地格数+"的解析</td><td>(",")");
String外格解析=find(webinfo,"外格"+外格数+"的解析</td><td>(",")");
String总格解析=find(webinfo,"总格"+总格数+"的解析</td><td>(",")");
String天格暗示=find(webinfo,"天格"+天格数+"有以下数理暗示</td><td>",
"</td>");
String人格暗示=find(webinfo,"人格"+人格数+"有以下数理暗示</td><td>",
"</td>");
String地格暗示=find(webinfo,"地格"+地格数+"有以下数理暗示</td><td>",
<img a
分享到:
相关推荐
java HttpURLConnection示例 HttpURLConnection工具
主要介绍了JAVA通过HttpURLConnection 上传和下载文件的方法,非常具有实用价值,需要的朋友可以参考下
用于对基于HTTP的服务进行抓取 HttpClient 现在是HttpComponents 把问题搞复杂了 其实Java内置的HttpURLConnection很好的 内含文档 使用方法见http: blog csdn net jdgdf566 article details 16357677
java网络请求工具类 HttpURLConnection post请求工具类HttpURLConnection httpURLConnection = (HttpURLConnection) url .openConnection(); httpURLConnection.setRequestMethod("POST");// 提交模式
Java自带的HttpURLConnection访问接口文件上传, 含普通参数值传递和文件传递
HttpURLConnection文件下载\httpURLConnection文件下载
主要介绍了java后台调用HttpURLConnection类模拟浏览器请求实例,该实例可用于接口调用,具有一定的实用价值,需要的朋友可以参考下
本人原创测试了百度,搜狗,360搜索都可以获取重定向后的真实地址,直接运行就可以,也可以根据自己项目具体修改功能。java使用HttpURLConnection获取百度搜狗360搜索链接重定向真实目标链接地址url。
本例子是 java 的 HttpURLConnection 使用方法,比较简单,但是涵盖了post和get两种方法,而且处理了乱码。
import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = ...
java实现多次HttpURLConnection共享session,发送两次请求共享同一个session,这样做爬虫的时候就可以爬网站登录后能看到的内容了
Java 实现 客户端 HttpURLConnection 用于进行web服务器测试的http客户端
用于对基于HTTP的服务进行抓取 HttpClient 现在是HttpComponents 把问题搞复杂了 其实Java内置的HttpURLConnection很好的 内含文档 使用方法见http://blog.csdn.net/jdgdf566/article/details/17039693
用于对基于HTTP的服务进行抓取 HttpClient 现在是HttpComponents 把问题搞复杂了 其实Java内置的HttpURLConnection很好的 内含文档 使用方法见http://blog.csdn.net/jdgdf566/article/details/17039693
主要介绍了Java HttpURLConnection超时和IO异常处理的相关资料,需要的朋友可以参考下
HttpUrlConnection.java
基于HttpURLConnection的网络访问 已封装好,一句话访问网络 可采用GET和POST两种方式访问
tomcat与web程序结构与Http协议与HttpUrlConnection.pdf
HttpURLConnection的demo,里面有网络请求get post 上传文件,下载文件,介绍HttpURLConnection这个类整体流程是怎样使用的,方便初学者学习
【Java】java.net.HttpURLConnection的使用