アットウィキロゴ

rikiop

package link;
 
import java.io.*;
 
public class pro {
 
      String[] subname=new String[60];
       String[] link_next=new String[60];
       String[] link_prev=new String[60];
       String[] name_next=new String[60];
       String[] name_prev=new String[60];
    int number;
      String[] time=new String[60];
 
      String[] dic=new String[600];
       String[] link=new String[600];
      int dicnumber;
      String web,namex;
 
    public static void main(String[] args) {
        pro te=new pro();
    }
    pro(){
 
        dicnumber=1;
link[0]="";        
        link[1]="https://ja.wikipedia.org/wiki/%E3%81%8A%E5%8F%B0%E5%A0%B4%E6%98%8E%E7%9F%B3%E5%9F%8E";
 
    dic[1]="";    
        int tr=1;
 
        int mode=0;
        while(mode<50){
 
            String urlx=link[tr];
 
 
 
link sub=new link();
sub.makedata(urlx);
link_prev=sub.link_prev;
link_next=sub.link_next;        
name_prev=sub.name_prev;     
name_next=sub.name_prev;   
number=sub.subnumber; 
time=sub.time;
 
web=urlx;
 
writexml("data/"+tr+".txt");
 
int s,sx;
for(s=1;s<number+1;s++){
 int h=0;
for(sx=0;sx<dicnumber+1;sx++){    
if(link_prev[s].equals(link[sx]))h=100;
}
if(h<50)dicnumber=dicnumber+1;
if(h<50)link[dicnumber]=link_prev[s];
if(h<50)dic[dicnumber]=name_prev[s];
}  
 
for(s=1;s<number+1;s++){
 int h=0;
for(sx=0;sx<dicnumber+1;sx++){    
if(link_next[s].equals(link[sx]))h=100;
}
if(h<50)dicnumber=dicnumber+1;
if(h<50)link[dicnumber]=link_next[s];
if(h<50)dic[dicnumber]=name_next[s];
}  
 
namex=dic[tr];
 
System.out.println(dic[tr]);
 
tr=tr+1;
 
if(tr>dicnumber)mode=100;
if(dicnumber>10)mode=100;
    }
 
    }
 
 
     void writexml(String file){ 
 
    int s,sx;
 
try{ 
PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(file))); 
 
for(s=1;s<number+1;s++){   
     pw.print(namex); 
     pw.print(",");
    pw.print(web); 
     pw.print(",");
     pw.print(name_prev[s]); 
     pw.print(",");
    pw.print(link_prev[s]);
     pw.print(",");
  pw.print(name_next[s]); 
     pw.print(",");
    pw.println(link_next[s]); 
}
 
 
 
System.out.println("ファイルに書きこみました。"); 
pw.close(); 
} catch(IOException ep){ System.out.println("入出力エラーです。"); } 
 
 
} 
 
 
 
    }
 
 
 
 
 
package link;
 
import tool.getdata;
 
public class link {
 
 int s,datanumber;
 String[] data=new String[5000];
      String[] link=new String[5000];
      int[] a=new int[600];
       int[] b=new int[600];
       String[] tab=new String[5000];
      String[] tabx=new String[5000];
 
       String[] name=new String[5000];
      String[] web=new String[5000];
 
       String[] next=new String[50];
      String[] prev=new String[50];
      String[] link_next=new String[50];
      String[] link_prev=new String[50];
      String[] title=new String[50];
       String[] sta=new String[50];
      int number;
    String[] memo=new String[50];
 
       String[] subname=new String[60];
       String[] sublink_next=new String[60];
       String[] sublink_prev=new String[60];
       String[] name_next=new String[60];
       String[] name_prev=new String[60];
    int subnumber;
      String[] time=new String[60];
 
 
    void makedata(String urlx){
 
 
 
 
        getdata sub17=new getdata();
        sub17.makedata(urlx,"UTF-8");
        data=sub17.data;
        datanumber=sub17.datanumber; 
 
        String str="";
        int sx=0;
        for(s=1;s<datanumber+1;s++){
      if(data[s].indexOf("<table")>-1)sx=sx+1;
      if(data[s].indexOf("<table")>-1)a[sx]=s;
 
 
    }
 
 
 
        number=sx;
           for(s=1;s<number+1;s++){
   int sp=0;
  for(sx=a[s];sx<datanumber+1;sx++){
   int h=0;
   if(data[sx].indexOf("</tab")>-1)h=h+1;
   if(sp==0)h=h+1;
   if(h==2)sp=sx;
   } 
  b[s]=sp;
  }
 
           for(s=1;s<number+1;s++){
   str="";
               for(sx=a[s];sx<b[s]+1;sx++){
   str=str+data[sx];
    } 
   tab[s]=str;              
 
           }
 
        sx=0;
             for(s=1;s<number+1;s++){
          int h=0;
          if(tab[s].indexOf("次番組")>-1)h=h+1;
          if(tab[s].indexOf("前番組")>-1)h=h+1;
           if(h==2)sx=sx+1;
           if(h==2)tabx[sx]=tab[s];
             }
 
             number=sx;
 
 
 subnumber=0;           
if(number>0){  
table sub=new table();
sub.makedata(tabx[1]);
link_prev=sub.sublink_prev;
link_next=sub.sublink_next;        
name_prev=sub.name_prev;     
name_next=sub.sublink_next;   
time=sub.time;
subnumber=sub.number;           
 }              
 
 
 
 
 
 
 
    }
 
 
 
 
String change(String str){
 
        int n;
        for(n=1;n<11;n++){
        str=rev(str);    
        }
 
        str=str.replace(" ","");
 
        return str;
    }
 
 String rev(String str){
 
        if(str==null)str="";
 
        int p1=str.indexOf("<");
        int p2=str.indexOf(">",p1);
        String strx="";
        if(p2>-1)strx=str.substring(p1,p2+1);
        str=str.replace(strx,"");
 
        return str;
    }    
 
 
 
}
 
 
 
 
package link;
 
 
public class table {
 
    int s;
    String[] sta=new String[60];
      String[] name=new String[60];
       String[] link_next=new String[60];
       String[] link_prev=new String[60];
       String[] next=new String[60];
       String[] prev=new String[60];
 
 
        String[] subname=new String[60];
       String[] sublink_next=new String[60];
       String[] sublink_prev=new String[60];
       String[] name_next=new String[60];
       String[] name_prev=new String[60];
    int number;
      String[] time=new String[60];
 
 
void makedata(String t){
 
 
     String[] x=t.split("</tr>");
 
        for(s=0;s<x.length-1;s++){
        sta[s]="";
         if(x[s].indexOf("枠</span>")>-1)sta[s]=change(x[s]);
          if(x[s].indexOf("枠</span>")>-1)x[s]="";
         int h=0;
         if(x[s].indexOf("前の")>-1)h=h+1;
         if(x[s].indexOf("次の番組")>-1)h=h+1;
         if(h==2)x[s]="";
 
        }
 
        int sx;
     for(s=0;s<x.length-1;s++){
     String str="";
         if(x[s].length()>0)str=x[s];
         String[] y=str.split("</td>");
      name[s]="";
      link_next[s]="";
      link_prev[s]="";
      for(sx=0;sx<y.length;sx++){
     if(sx==1)name[s]=change(y[sx]);
     if(sx==2)link_next[s]=alpha(y[sx]);
     if(sx==0)link_prev[s]=alpha(y[sx]);
     if(sx==2)next[s]=beta(y[sx]);
     if(sx==0)prev[s]=beta(y[sx]);
      }
     }
 
    for(s=1;s<x.length-1;s++){
    if(sta[s].length()<1)sta[s]=sta[s-1];    
    }
 
     sx=0;
      for(s=1;s<x.length-1;s++){
      if(name[s].length()>0)sx=sx+1;
      if(name[s].length()>0)subname[sx]=name[s];
      if(name[s].length()>0)sublink_prev[sx]="https://ja.wikipedia.org"+link_prev[s];
      if(name[s].length()>0)sublink_next[sx]="https://ja.wikipedia.org"+link_next[s];
      if(name[s].length()>0)name_next[sx]=change(prev[s]);
      if(name[s].length()>0)name_prev[sx]=change(next[s]);
       if(name[s].length()>0)time[sx]=sta[s];
      }
 
    number=sx;
 
 
 
 
 
 
}
 String beta(String de){
 int p1=de.indexOf("/wiki/");
 if(p1>-1)p1=de.indexOf(">",p1);
 int p2=-1;  
 if(p1>-1)p2=de.indexOf("</div>",p1);    
 String pp="";
 if(p2>-1)pp=de.substring(p1+1,p2);
        return pp;
    }
String alpha(String de){
 int p1=de.indexOf("/wiki/");
 
 int p2=-1;  
 if(p1>-1)p2=de.indexOf("\"",p1);  
 String pp="";
 if(p2>-1)pp=de.substring(p1,p2);
        return pp;
    }
 
String change(String str){
 
        int n;
        for(n=1;n<11;n++){
        str=rev(str);    
        }
 
        str=str.replace(" ","");
 
        return str;
    }
 
 String rev(String str){
 
        if(str==null)str="";
 
        int p1=str.indexOf("<");
        int p2=str.indexOf(">",p1);
        String strx="";
        if(p2>-1)strx=str.substring(p1,p2+1);
        str=str.replace(strx,"");
 
        return str;
    }    
 
 
 
 
 
}
 
最終更新:2016年08月27日 23:41