运行的时候,需要Log4j.jar
最好使用命令运行
java -cp log4j.jar,. XingMing > xingming.txt
仅供娱乐。
import
java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.log4j.Logger;
public class XingMing ... {
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>",
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.log4j.Logger;
public class XingMing ... {
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>",