- 浏览: 13244642 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
sanrenxing_1:
GoEasy 实时推送支持IE6-IE11及大多数主流浏览器的 ...
WindowsPhone消息推送服务 -
张砚辉:
两侧照片绕Y轴旋转后有锯齿,请问锯齿解决方案,很长时间没解决
自定义带倒影和偏转的超炫Gallery -
knight_black_bob:
能不能把你自己的博客整理下分类下,写了这么多 ,都不知道怎么查 ...
Android_View,ViewGroup,Window之间的关系 -
jeasonyoung:
你这个代码实现在iOS8下应该是滑不动的
UISlider 滑块控件—IOS开发 -
wx_hello:
如果能写个可运行的java程序,不胜感激。。。
rs232串口通信原理
Java版PageRank及网站收录情况查询代码
在Google这个由10的100次方得名的站点中,各种评估网站的算法层出不穷,而PageRank即是其中之一。
Google的PageRank根据网站的外部链接和内部链接的数量和质量俩衡量网站的价值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票,被链接的越多,就意味着被其他网站投票越多。这个就是所谓的“链接流行度”——衡量多少人愿意将他们的网站和你的网站挂钩。PageRank这个概念引自学术中一篇论文的被引述的频度——即被别人引述的次数越多,一般判断这篇论文的权威性就越高。
通常情况下讲,原创内容越多的站点,PageRank越容易提升,反之则相对比较困难,PageRank最大上限值为10。在Google的评估中,能上10的网站真可谓凤毛麟角,即使算上Google,能成就PageRank 10这“伟业”者,望眼环球也不足40家。一般来说,个人站点评估值4即办的不错,商业网站到6以上便算步入正轨了。
网上虽然有不少现成的查询器及源码,但是光用别人的毕竟不符合程序员风格,所以今天自己用Java重造轮子又写了个PageRank查询实现,捎带着把一些常用搜索引擎的网站链接及反向链接查询也加上了。
源码如下:
GooglePageRank.java
- packageorg.loon.test;
- importjava.io.IOException;
- importjava.util.Random;
- importjava.util.regex.Matcher;
- importjava.util.regex.Pattern;
- /**
- *Copyright2008
- *
- *LicensedundertheApacheLicense,Version2.0(the"License");youmaynot
- *usethisfileexceptincompliancewiththeLicense.Youmayobtainacopyof
- *theLicenseat
- *
- *http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
- *distributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUT
- *WARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.Seethe
- *Licenseforthespecificlanguagegoverningpermissionsandlimitationsunder
- *theLicense.
- *
- *@projectloonframework
- *@authorchenpeng
- *@email:ceponline@yahoo.com.cn
- *@version0.1
- */
- publicclassGooglePageRank{
- //googlepagerank服务器ip地址列表(最近google小气了很多,反复查询一个封ip)
- finalstaticString[]GoogleServiceIP=newString[]{"64.233.161.100",
- "64.233.161.101","64.233.183.91","64.233.189.44","66.102.1.103",
- "66.102.9.115","66.249.89.83","66.249.91.99","66.249.93.190"};
- //google用识别标记
- finalstaticprivateintGOOGLE_MAGIC=0xE6359A60;
- //ch数值混合器
- privateclassCHMix{
- inta;
- intb;
- intc;
- publicCHMix(){
- this(0,0,0);
- }
- publicCHMix(inta,intb,intc){
- this.a=a;
- this.b=b;
- this.c=c;
- }
- }
- /**
- *按google要求混合成ch数据
- *
- *@parammix
- */
- privatestaticvoidmix(finalCHMixmix){
- mix.a-=mix.b;
- mix.a-=mix.c;
- mix.a^=mix.c>>13;
- mix.b-=mix.c;
- mix.b-=mix.a;
- mix.b^=mix.a<<8;
- mix.c-=mix.a;
- mix.c-=mix.b;
- mix.c^=mix.b>>13;
- mix.a-=mix.b;
- mix.a-=mix.c;
- mix.a^=mix.c>>12;
- mix.b-=mix.c;
- mix.b-=mix.a;
- mix.b^=mix.a<<16;
- mix.c-=mix.a;
- mix.c-=mix.b;
- mix.c^=mix.b>>5;
- mix.a-=mix.b;
- mix.a-=mix.c;
- mix.a^=mix.c>>3;
- mix.b-=mix.c;
- mix.b-=mix.a;
- mix.b^=mix.a<<10;
- mix.c-=mix.a;
- mix.c-=mix.b;
- mix.c^=mix.b>>15;
- }
- /**
- *获得ch数值混合器
- *
- *@return
- */
- publicstaticCHMixgetInnerCHMix(){
- returnnewGooglePageRank().newCHMix();
- }
- /**
- *通过url获得googlech(google数据库针对页面的全球唯一标识)
- *
- *@paramurl
- *@return
- */
- publicstaticStringGoogleCH(finalStringurl){
- //格式化为google要求的info:url模式
- StringnUrl=String.format("info:%s",newObject[]{url});
- //获得新url字符串格式
- char[]urls=nUrl.toCharArray();
- //获得新url长度
- intlength=urls.length;
- //获得一个ch数值混合器
- CHMixchMix=GooglePageRank.getInnerCHMix();
- //为c注入google识别标识
- chMix.c=GOOGLE_MAGIC;
- //为a、b项注入google要求的初始标识
- chMix.a=chMix.b=0x9E3779B9;
- intk=0;
- intlen=length;
- while(len>=12){
- chMix.a+=(int)(urls[k+0]+(urls[k+1]<<8)
- +(urls[k+2]<<16)+(urls[k+3]<<24));
- chMix.b+=(int)(urls[k+4]+(urls[k+5]<<8)
- +(urls[k+6]<<16)+(urls[k+7]<<24));
- chMix.c+=(int)(urls[k+8]+(urls[k+9]<<8)
- +(urls[k+10]<<16)+(urls[k+11]<<24));
- //获得混合运算后的数据
- GooglePageRank.mix(chMix);
- k+=12;
- len-=12;
- }
- chMix.c+=length;
- //产生googlech的11位标识
- switch(len){
- case11:
- chMix.c+=(int)(urls[k+10]<<24);
- case10:
- chMix.c+=(int)(urls[k+9]<<16);
- case9:
- chMix.c+=(int)(urls[k+8]<<8);
- case8:
- chMix.b+=(int)(urls[k+7]<<24);
- case7:
- chMix.b+=(int)(urls[k+6]<<16);
- case6:
- chMix.b+=(int)(urls[k+5]<<8);
- case5:
- chMix.b+=(int)(urls[k+4]);
- case4:
- chMix.a+=(int)(urls[k+3]<<24);
- case3:
- chMix.a+=(int)(urls[k+2]<<16);
- case2:
- chMix.a+=(int)(urls[k+1]<<8);
- case1:
- chMix.a+=(int)(urls[k+0]);
- break;
- default:
- break;
- }
- //获得混合运算后的数据
- GooglePageRank.mix(chMix);
- //获得未修订的CH
- Stringtch=String.valueOf(chMix.c);
- //矫正差值后反馈正确CH
- returnString
- .format("6%s",newObject[]{tch.length()<10?("-"+tch)
- .intern():tch});
- }
- /**
- *正则匹配pagerank结果
- *
- *@paramvalue
- *@return
- */
- privatestaticStringMatchRank(finalStringvalue){
- Patternpattern=Pattern.compile("Rank_1:[0-9]:([0-9]+)");
- Matchermatcher=pattern.matcher(value);
- if(matcher.find()){
- returnmatcher.group(1);
- }
- return"0";
- }
- /**
- *获得指定页面的googlepagerank值
- *
- *@paramurl
- *@return
- */
- publicstaticStringGooglePR(finalStringurl){
- Stringrip=GoogleServiceIP[newRandom()
- .nextInt(GoogleServiceIP.length)];
- returnGooglePR(url,rip);
- }
- /**
- *以指定的google服务器获得指定页面的googlepagerank值
- *
- *@paramurl
- *@paramip
- *@return
- */
- publicstaticStringGooglePR(finalStringurl,finalStringip){
- //产生查询用唯一标识
- Stringchecksum=GoogleCH(url);
- //产生查询用url
- StringqueryUrl=String
- .format(
- "http://%s/search?client=navclient-auto&ch=%s&features=Rank&q=info:%s",
- newObject[]{ip,checksum,url});
- Stringresponse;
- try{
- response=SimpleWebClient.getRequestHttp(queryUrl);
- }catch(IOExceptione){
- response="";
- }
- if(response.length()==0){
- return"0";
- }else{
- returnGooglePageRank.MatchRank(response);
- }
- }
- }
SimpleWebClient.java
- packageorg.loon.test;
- importjava.io.BufferedInputStream;
- importjava.io.ByteArrayOutputStream;
- importjava.io.IOException;
- importjava.io.InputStream;
- importjava.io.InputStreamReader;
- importjava.io.OutputStreamWriter;
- importjava.net.HttpURLConnection;
- importjava.net.URL;
- importjava.util.HashMap;
- importjava.util.Iterator;
- importjava.util.Map;
- importjava.util.Set;
- importjava.util.Map.Entry;
- importsun.misc.BASE64Encoder;
- /**
- *Copyright2008
- *
- *LicensedundertheApacheLicense,Version2.0(the"License");youmaynot
- *usethisfileexceptincompliancewiththeLicense.Youmayobtainacopyof
- *theLicenseat
- *
- *http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
- *distributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUT
- *WARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.Seethe
- *Licenseforthespecificlanguagegoverningpermissionsandlimitationsunder
- *theLicense.
- *
- *@projectloonframework
- *@authorchenpeng
- *@email:ceponline@yahoo.com.cn
- *@version0.1
- */
- publicclassSimpleWebClient{
- /**
- *向指定url发送请求并获得响应数据
- *
- *@paramurlString
- *@return
- *@throwsIOException
- */
- publicstaticStringgetRequestHttp(StringurlString)throwsIOException{
- returngetRequestHttp(urlString,"utf-8");
- }
- /**
- *向指定url发送请求并获得响应数据
- *
- *@paramurlString
- *@paramencoding
- *@return
- *@throwsIOException
- */
- publicstaticStringgetRequestHttp(StringurlString,Stringencoding)
- throwsIOException{
- returngetRequestHttp(urlString,encoding,null,5000);
- }
- /**
- *向指定url发送请求并获得响应数据
- *
- *@paramurlString
- *@paramencoding
- *@paramparameter
- *@return
- *@throwsIOException
- */
- publicstaticStringgetRequestHttp(finalStringurlString,
- finalStringencoding,finalMapparameter,finalinttimeout)
- throwsIOException{
- StringnURL=(urlString.startsWith("http://")||urlString
- .startsWith("https://"))?urlString:("http:"+urlString)
- .intern();
- Stringuser=null;
- Stringpassword=null;
- Stringmethod="GET";
- Stringpost=null;
- Stringdigest=null;
- StringresponseContent="ERROR";
- booleanfoundRedirect=false;
- Mapheaders=newHashMap();
- if(parameter!=null){
- SetentrySet=parameter.entrySet();
- for(Iteratorit=entrySet.iterator();it.hasNext();){
- Entryheader=(Entry)it.next();
- Stringkey=(String)header.getKey();
- Stringvalue=(String)header.getValue();
- if("user".equals(key)){
- user=value;
- }elseif("pass".equals(key)){
- password=value;
- }elseif("method".equals(key)){
- method=value;
- }elseif("post".equals(key)){
- post=value;
- }else{
- headers.put(key,value);
- }
- }
- }
- URLurl=newURL(nURL);
- if(user!=null&&password!=null){
- BASE64Encoderbase64=newBASE64Encoder();
- digest="Basic"
- +base64.encode((user+":"+password).getBytes());
- }
- do{
- HttpURLConnectionurlConnection=(HttpURLConnection)url
- .openConnection();
- //添加访问授权
- if(digest!=null){
- urlConnection.setRequestProperty("Authorization",digest);
- }
- urlConnection.setDoOutput(true);
- urlConnection.setDoInput(true);
- urlConnection.setUseCaches(false);
- urlConnection.setInstanceFollowRedirects(false);
- urlConnection.setRequestMethod(method);
- if(timeout>0){
- urlConnection.setConnectTimeout(timeout);
- }
- //模拟http头文件
- urlConnection.setRequestProperty("User-Agent","Mozilla/4.0(compatible;MSIE7.0;)");
- urlConnection.setRequestProperty("Accept","image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/msword,application/vnd.ms-excel,application/vnd.ms-powerpoint,*/*");
- //追加http头文件
- SetheadersSet=headers.entrySet();
- for(Iteratorit=headersSet.iterator();it.hasNext();){
- Entryentry=(Entry)it.next();
- urlConnection.setRequestProperty((String)entry.getKey(),
- (String)entry.getValue());
- }
- if(post!=null){
- OutputStreamWriteroutRemote=newOutputStreamWriter(
- urlConnection.getOutputStream());
- outRemote.write(post);
- outRemote.flush();
- }
- //获得响应状态
- intresponseCode=urlConnection.getResponseCode();
- //获得返回的数据长度
- intresponseLength=urlConnection.getContentLength();
- if(responseCode==302){
- //重定向
- Stringlocation=urlConnection.getHeaderField("Location");
- url=newURL(location);
- foundRedirect=true;
- }else{
- BufferedInputStreamin;
- if(responseCode==200||responseCode==201){
- in=newBufferedInputStream(urlConnection.getInputStream());
- }else{
- in=newBufferedInputStream(urlConnection.getErrorStream());
- }
- intsize=responseLength==-1?4096:responseLength;
- if(encoding!=null){
- responseContent=SimpleWebClient.read(in,size,encoding);
- }else{
- ByteArrayOutputStreamout=newByteArrayOutputStream();
- byte[]bytes=newbyte[size];
- intread;
- while((read=in.read(bytes))>=0){
- out.write(bytes,0,read);
- }
- responseContent=newString(out.toByteArray());
- in.close();
- out.close();
- }
- foundRedirect=false;
- }
- //如果重定向则继续
- }while(foundRedirect);
- returnresponseContent;
- }
- /**
- *转化InputStream为String
- *
- *@paramin
- *@paramsize
- *@return
- *@throwsIOException
- */
- privatestaticStringread(finalInputStreamin,finalintsize,
- finalStringencoding)throwsIOException{
- StringBuildersbr=newStringBuilder();
- intnSize=size;
- if(nSize==0){
- nSize=1;
- }
- char[]buffer=newchar[nSize];
- intoffset=0;
- InputStreamReaderisr=newInputStreamReader(in,encoding);
- while((offset=isr.read(buffer))!=-1){
- sbr.append(buffer,0,offset);
- }
- in.close();
- isr.close();
- returnsbr.toString();
- }
- }
WebAppraise.java
- packageorg.loon.test;
- importjava.io.IOException;
- /**
- *Copyright2008
- *
- *LicensedundertheApacheLicense,Version2.0(the"License");youmaynot
- *usethisfileexceptincompliancewiththeLicense.Youmayobtainacopyof
- *theLicenseat
- *
- *http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
- *distributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUT
- *WARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.Seethe
- *Licenseforthespecificlanguagegoverningpermissionsandlimitationsunder
- *theLicense.
- *
- *@projectloonframework
- *@authorchenpeng
- *@email:ceponline@yahoo.com.cn
- *@version0.1
- */
- publicclassWebAppraise{
- privateStringgoogleSum;
- privateStringbaiduSum;
- privateStringmsnSum;
- privateStringaltaVistaSum;
- privateStringallTheWebSum;
- privateStringyahooSum;
- privateStringtestURL;
- publicWebAppraise(finalStringurl){
- if(url!=null&&!"".equals(url)){
- this.testURL=url.trim();
- if(this.testURL.startsWith("http://")){
- this.testURL=this.testURL.substring(7);
- }
- if(this.testURL.startsWith("https://")){
- this.testURL=this.testURL.substring(8);
- }
- }else{
- thrownewRuntimeException("urlisNULL!");
- }
- }
- /**
- *分析指定链接结果,并返回整型数值
- *
- *@paramsearchURL
- *@paramanchor
- *@paramtrail
- *@return
- */
- privatestaticintgetLinks(finalStringsearchURL,finalStringanchor,
- finalStringtrail){
- intcount=0;
- StringserverResponse;
- try{
- //我国特色……
- if(searchURL.startsWith("http://www.baidu.com")){
- //永不离休的gb2312同志(-_-||)
- serverResponse=SimpleWebClient.getRequestHttp(searchURL,
- "gb2312");
- }else{
- serverResponse=SimpleWebClient.getRequestHttp(searchURL);
- }
- }catch(IOExceptione){
- serverResponse=e.getMessage();
- }
- intpos=serverResponse.indexOf(anchor);
- if(pos>1){
- serverResponse=serverResponse.substring(pos+anchor.length());
- pos=serverResponse.indexOf(trail);
- Stringvalue=serverResponse.substring(0,pos).trim();
- value=value.replace(",","");
- value=value.replace(".","");
- count=Integer.parseInt(value);
- }
- returncount;
- }
- publicStringgetAllTheWebSite(){
- returngetAllTheWebSite(false);
- }
- publicStringgetAllTheWebSite(booleanisDomain){
- try{
- StringallTheWeb;
- if(isDomain){
- allTheWeb="http://www.alltheweb.com/search?cat=web&cs=utf8&rys=0&itag=crv&_sb_lang=any&q=linkdomain%3A"
- +this.testURL;
- }else{
- allTheWeb="http://www.alltheweb.com/search?cat=web&cs=utf-8&q=link%3Ahttp%3A%2F%2F"
- +this.testURL+"&_sb_lang=any";
- }
- allTheWebSum=""
- +getLinks(allTheWeb,"<spanclass=/"ofSoMany/">",
- "</span>");
- }catch(Exceptionex){
- allTheWebSum=ex.getMessage();
- }
- returnallTheWebSum;
- }
- publicStringgetAltaVistaSite(){
- returngetAltaVistaSite(false);
- }
- publicStringgetAltaVistaSite(booleanisDomain){
- try{
- StringaltaVista;
- if(isDomain){
- altaVista="http://www.altavista.com/web/results?itag=ody&q=link%3A"
- +this.testURL+"&kgs=0&kls=0";
- }else{
- altaVista="http://www.altavista.com/web/results?itag=ody&kgs=0&kls=0&q=site%3A"
- +this.testURL;
- }
- altaVistaSum=""+getLinks(altaVista,"AltaVistafound","");
- }catch(Exceptionex){
- altaVistaSum=ex.getMessage();
- }
- returnaltaVistaSum;
- }
- publicStringgetGooglePR(){
- returnGooglePageRank.GooglePR(this.testURL);
- }
- publicStringgetGoogleSite(){
- returngetGoogleSite(false);
- }
- publicStringgetGoogleSite(finalbooleanisDomian){
- try{
- Stringgoogle;
- //反向链接
- if(isDomian){
- google="http://www.google.com/search?hl=en&q=link%3A"
- +this.testURL;
- }else{
- google="http://www.google.com/search?hl=en&q=site%3A"
- +this.testURL+"&btnG=Google+Search&aq=f&oq=";
- }
- googleSum=""+getLinks(google,"about<b>","</b>");
- }catch(Exceptionex){
- googleSum=ex.getMessage();
- }
- returngoogleSum;
- }
- publicStringgetBaiduSite(){
- returngetBaiduSite(false);
- }
- publicStringgetBaiduSite(finalbooleanisDomian){
- try{
- Stringbaidu;
- if(isDomian){
- baidu="http://www.baidu.com/s?wd=domain%3A"+this.testURL
- +"&cl=3";
- }else{
- baidu="http://www.baidu.com/s?wd=site%3A"+this.testURL;
- }
- baiduSum=""+getLinks(baidu,"找到相关网页","篇");
- }catch(Exceptionex){
- Stringbaidu;
- if(isDomian){
- baidu="http://www.baidu.com/s?wd=domain%3A"+this.testURL
- +"&cl=3";
- }else{
- baidu="http://www.baidu.com/s?wd=site%3A"+this.testURL;
- }
- baiduSum=""+getLinks(baidu,"找到相关网页约","篇");
- }
- returnbaiduSum;
- }
- publicStringgetYahooSite(){
- returngetYahooSite(false);
- }
- publicStringgetYahooSite(finalbooleanisDomian){
- try{
- Stringyahoo;
- if(isDomian){
- yahoo="http://sitemap.cn.yahoo.com/search?p="+this.testURL
- +"&bwm=i";
- yahooSum=""+getLinks(yahoo,"<strong>","</strong>");
- }else{
- yahoo="http://www.yahoo.cn/s?p=site%3A"+this.testURL
- +"&pid=hp&v=web";
- yahooSum=""+getLinks(yahoo,"找到相关网页约","条");
- }
- }catch(Exceptionex){
- yahooSum=ex.getMessage();
- }
- returnyahooSum;
- }
- publicStringgetMsnSite(){
- returngetMsnSite(false);
- }
- publicStringgetMsnSite(booleanisDomain){
- try{
- Stringmsn;
- if(isDomain){
- msn="http://cnweb.search.live.com/results.aspx?q=link%3A"
- +this.testURL+"&mkt=zh-cn&scope=&FORM=LIVSO";
- }else{
- msn="http://cnweb.search.live.com/results.aspx?q=site%3A"
- +this.testURL+"&go=&form=QBRE";
- }
- msnSum=""+getLinks(msn,"共","条搜索结果");
- }catch(Exceptionex){
- msnSum=ex.getMessage();
- }
- returnmsnSum;
- }
- publicStringgetTestURL(){
- returntestURL;
- }
- }
Test.java
- packageorg.loon.test;
- /**
- *Copyright2008
- *
- *LicensedundertheApacheLicense,Version2.0(the"License");youmaynot
- *usethisfileexceptincompliancewiththeLicense.Youmayobtainacopyof
- *theLicenseat
- *
- *http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
- *distributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUT
- *WARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.Seethe
- *Licenseforthespecificlanguagegoverningpermissionsandlimitationsunder
- *theLicense.
- *
- *@projectloonframework
- *@authorchenpeng
- *@email:ceponline@yahoo.com.cn
- *@version0.1
- */
- publicclassTest{
- publicstaticvoidmain(String[]args){
- WebAppraiseappraise=newWebAppraise("http://blog.csdn.net/cping1982");
- System.out.println("GooglePagerRank值:"+appraise.getGooglePR());
- System.out.println("google收录:"+appraise.getGoogleSite());
- System.out.println("google反向收录:"+appraise.getGoogleSite(true));
- System.out.println("yahoo收录:"+appraise.getYahooSite());
- System.out.println("yahoo反向收录:"+appraise.getYahooSite(true));
- System.out.println("baidu收录:"+appraise.getBaiduSite());
- System.out.println("baidu反向收录:"+appraise.getBaiduSite(true));
- System.out.println("msn收录:"+appraise.getMsnSite());
- System.out.println("msn反向收录:"+appraise.getMsnSite(true));
- System.out.println("AllTheWeb收录:"+appraise.getAllTheWebSite());
- System.out.println("AllTheWeb反向收录:"+appraise.getAllTheWebSite(true));
- System.out.println("AltaVista收录:"+appraise.getAltaVistaSite());
- System.out.println("AltaVista反向收录:"+appraise.getAltaVistaSite(true));
- }
- }
检测http://blog.csdn.net/cping1982运行结果如下图:
源码下载地址:http://download.csdn.net/source/929348
相关推荐
Java版PageRank查询源码是实现这一算法的程序,可以帮助程序员理解PageRank的工作原理,并自定义查询功能。 首先,让我们详细了解一下`SimpleWebClient.java`。这是一个基础的网络客户端类,它负责发送HTTP请求并...
在Java代码中,可能会使用到数据结构如ArrayList、HashMap等来存储网页和链接信息。同时,可能会使用到并发编程技术,因为大规模的PageRank计算可能需要分布式处理,利用多线程或分布式计算框架(如Hadoop)来提高...
在这个"Java_PageRank.rar_pageRank_pagerank java"压缩包中,包含了几个关键的Java源代码文件,用于实现PageRank算法以及查询网站的收录情况。 1. **SimpleWebClient.java**:这是一个简单的网络客户端类,用于...
在这个南开大学的大数据课程大作业中,学生们被要求实现PageRank算法,通过Python代码来处理大规模数据。下面我们将深入探讨PageRank算法的核心原理、实现过程以及在大数据环境下的应用。 **PageRank原理** ...
在`PageRank.java`中,Java版的PageRank算法通常会涉及以下几个关键步骤: 1. **初始化矩阵**:创建一个表示网页链接关系的矩阵,矩阵元素表示一个网页指向另一个网页的链接权重。 2. **迭代计算**:进行多次迭代,...
网站收录查询是一款专为站长开发的软件,旨在帮助站长快速查询网站的收录以及外链情况。 【使用说明】 在输入框中输入网址如:http://www.yingerbaobei.com 也可以输入内页如:...
九大搜索引擎收录查询包括:百度,Google,Yahoo,有道,搜狗,搜搜,Altavista,Alltheweb,必应,可以查询这些搜索引擎的收录情况及反向链接数量;以及查询Sogou Rank,PageRank,Alexa Rank,有利于站长正确认识和优化...
GooglePageRank.java文件很可能是实现PageRank算法的Java代码。这个类可能包含以下几个核心部分: 1. **网页链接结构的表示**:通常使用邻接矩阵或邻接表来存储网页间的链接关系。 2. **初始化PageRank值**:所有...
为了确保每个网页的出度(出链数量)之和为1,代码中通过`for`循环对每行进行归一化处理,使得每一行元素之和为1,这一步骤是PageRank算法的关键预处理步骤。 接下来,定义了阻尼系数`d`,通常设置为0.85到0.95之间...
这个"PageRank-java.rar_pageRank_pagerank java"压缩包包含的是PageRank算法的Java实现,对于理解该算法及其在网页排名中的应用具有实际价值。 在Java源码中,我们可以看到PageRank的基本思想和计算过程。PageRank...
`truncated-pagerank`是一种优化的PageRank算法,它在大规模网络数据处理中非常有用,尤其是在图论和搜索引擎优化领域...通过学习这段源代码,我们可以深入了解如何在实际项目中优化PageRank计算,提高算法的运行效率。
可读入文件,更可按你的要求生成随机的矩阵,全图形操作界面!...PageRank算法及Java代码实现,加入阻尼系数变量,可轻松修改迭代次数及阻尼变量,并且输出时提示是第几次的迭代输出. 对输入的格式要求有很详细的介绍!
实现PageRank算法最为简单的代码,此代码使用java编写,适合与学习搜索引擎了解pageRank算法的初学者。
以下是一个简单的Java代码框架,展示了PageRank算法的实现: ```java import java.util.*; class PageRank { private int numPages; private double dampingFactor; private double tolerance; private double...
另一个是`pageRank.py`,这是一个实际的Python代码文件,用于演示如何实现PageRank算法。初学者可以通过阅读文档理解算法理论,然后结合代码实践,加深对算法的理解。 总结来说,PageRank算法是一种衡量网页重要性...
站长工具箱 Webmaster Toolbox 是一个用Flash制作的站点综合信息查询工具,主要功能是查询某个站点的Google Pagerank、Alexa世界排名、Sogou指数、中国网站排名,以及在几大主要搜索引擎中的收录反向链接的情况,...
此网站收录查询工具以通过 IE5.5 IE6.0 IE7.0 Mozilla Firefox 浏览器测试无任何问题 各大搜索引擎收录查询 包括:百度,谷歌,雅虎,有道,Live,搜狗,搜搜,中国搜索,A9,Altavista,Alltheweb,以及PR查询,SogouRank查询...
在`PageRank.py`文件中,我们可以预期代码会包含以下几个关键部分: 1. **数据结构**:使用字典或DataFrame存储网页和它们的出链。 2. **初始化**:根据网页数量初始化所有PageRank值。 3. **计算转移**:实现...
【全球网站搜索收录排名源代码】是一个针对网站搜索引擎优化(SEO)的重要工具,主要用于查询网站在各大搜索引擎中的排名情况。这个源代码集成了对Google、百度、易搜(360搜索的前身)以及Alexa这四大主流搜索引擎...
PageRank是Google创始人拉里·佩奇提出的一种评估网页重要性的数学算法,它在互联网的早期阶段对搜索引擎的排名机制产生了深远影响。Python是一种广泛应用于数据处理和科学计算的编程语言,非常适合实现PageRank这样...