package tvlink;
import java.io.*;
public class pro {
int subnumber;
String[] link=new String[5000];
String[] web=new String[15000];
String[] sublink=new String[5000];
int number;
String[] name=new String[15000];
String[] week=new String[5000];
String[] sta =new String[15000];
int[] time=new int[5000];
String[] data=new String[5000];
int datanumber;
int de;
public static void main(String[] args) {
pro test=new pro();
}
pro(){
readx("201.csv");
int s;
for(s=2;s<datanumber+1;s++){
String[] x=data[s].split(",");
sta[s-1]=x[0];
name[s-1]=x[1];
web[s-1]=x[2];
}
number=datanumber-1;
int tr=1;
int mode=0;
while(mode<50){
link sub=new link();
sub.makedata(web[tr],sta[tr]);
sublink=sub.link;
subnumber=sub.subnumber;
name[tr]=sub.titlex;
int sx;
for(s=1;s<subnumber+1;s++){
int h=0;
for(sx=1;sx<number+1;sx++){
if(sublink[s].equals(web[sx]))h=100;
}
if(h<50)number=number+1;
if(h<50)web[number]=sublink[s];
if(h<50)sta[number]=sta[tr];
}
System.out.println(tr+","+sta[tr]+","+name[tr]+""+web[tr]+","+number);
tr=tr+1;
if(tr>number)mode=100;
}
writexml("ren3.txt");
}
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(sta[s]+","+name[s]);
pw.print(",");
pw.println(web[s]);
}
System.out.println("ファイルに書きこみました。");
pw.close();
} catch(IOException ep){ System.out.println("入出力エラーです。"); }
}
int numx(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
void readx(String file){
String str;
BufferedReader br;
int s;
s=0;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
while((str = br.readLine()) != null) {
s=s+1;
data[s]=str;
}
br.close();
} catch (IOException e) {System.out.println(e);}
datanumber=s;
}
}
package tvlink;
import tool.getdata;
public class link {
int s,datanumber;
String[] data=new String[5000];
String[] link=new String[15000];
int[] a=new int[600];
int[] b=new int[600];
String[] tab=new String[5000];
String[] tabx=new String[5000];
String[] name=new String[15000];
String[] web=new String[15000];
String[] sta_n=new String[5000];
String[] sta_p=new String[5000];
String[] next=new String[50];
String[] prev=new String[50];
String[] link_p=new String[50];
String[] link_prev=new String[500];
String[] title=new String[500];
String[] sta=new String[500];
int number;
String[] memo=new String[50];
String[] name_p=new String[600];
String[] name_prev=new String[600];
String[] smap=new String[500];
String[] sublink_prev=new String[600];
String[] name_n=new String[600];
String[] link_n=new String[600];
int number_n,number_p;
String[] time=new String[600];
String[] term=new String[600];
String titlex;
int subnumber;
void makedata(String urlx,String stan){
getdata sub17=new getdata();
sub17.makedata(urlx,"UTF-8");
data=sub17.data;
datanumber=sub17.datanumber;
titlex="";
for(s=1;s<datanumber+1;s++){
if(data[s].indexOf("<title")>-1)titlex=data[s];
}
titlex=titlex.replace(" - Wikipedia</title>","");
titlex=titlex.replace("<title>","");
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;
int de;
int s5=0;
for(de=1;de<number+1;de++){
table sub=new table();
sub.makedata(tabx[de]);
link_p=sub.link_p;
name_p=sub.name_p;
number_p=sub.number_p;
number_n=sub.number_n;
link_n=sub.link_n;
name_n=sub.name_n;
sta_p=sub.sta_p;
sta_n=sub.sta_n;
for(s=1;s<number_p+1;s++){
s5=s5+1;
link_prev[s5]=link_p[s];
name_prev[s5]=name_p[s];
time[s5]=sta_p[s];
}
for(s=1;s<number_n+1;s++){
s5=s5+1;
link_prev[s5]=link_n[s];
name_prev[s5]=name_n[s];
time[s5]=sta_n[s];
}
}
subnumber=s5;
sx=0;
for(s=1;s<subnumber+1;s++){
int h=0;
if(time[s].indexOf(stan)>-1)h=100;
if(h>50)sx=sx+1;
if(h>50)link[sx]=link_prev[s];
if(h>50)name[sx]=name_prev[s];
if(h>50)term[sx]=time[s];
}
subnumber=sx;
}
int numx(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
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 tvlink;
public class table {
int s;
String[] sta_n=new String[60];
String[] sta_p=new String[60];
String[] name=new String[60];
String[] link=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[] link_n=new String[60];
String[] link_p=new String[60];
String[] name_n=new String[60];
String[] name_p=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];
int number_p,number_n;
void makedata(String t){
String str1="<th colspan=\"3\">";
String[] x=t.split("</tr>");
for(s=0;s<x.length-1;s++){
time[s]="";
if(x[s].indexOf(str1)>-1)time[s]=change(x[s]);
if(time[s].length()>1)x[s]="";
int s1=s-1;
if(s1<0)s1=0;
if(time[s].length()<1)time[s]=time[s1];
int h=0;
if(s==0)h=h+1;
if(time[s]==null)h=h+1;
if(h==2)time[s]="";
}
for(s=0;s<x.length-1;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[] y=x[s].split("</td>");
name_prev[s]="";
name_next[s]="";
for(sx=0;sx<y.length;sx++){
if(sx==0)name_prev[s]=change(y[sx]);
if(sx==2)name_next[s]=change(y[sx]);
}
}
for(s=0;s<x.length-1;s++){
String[] y=x[s].split("</td>");
link_prev[s]="";
link_next[s]="";
for(sx=0;sx<y.length;sx++){
if(sx==0)link_prev[s]=alpha(y[sx]);
if(sx==2)link_next[s]=alpha(y[sx]);
}
}
sx=0;
for(s=0;s<x.length-1;s++){
if(link_prev[s].indexOf("https://ja.wikipedia.org/")>-1)sx=sx+1;
if(link_prev[s].indexOf("https://ja.wikipedia.org/")>-1)sta_p[sx]=time[s];
if(link_prev[s].indexOf("https://ja.wikipedia.org/")>-1)link_p[sx]=link_prev[s];
if(link_prev[s].indexOf("https://ja.wikipedia.org/")>-1)name_p[sx]=name_prev[s];
}
number_p=sx;
sx=0;
for(s=0;s<x.length-1;s++){
if(link_next[s].indexOf("https://ja.wikipedia.org/")>-1)sx=sx+1;
if(link_next[s].indexOf("https://ja.wikipedia.org/")>-1)sta_n[sx]=time[s];
if(link_next[s].indexOf("https://ja.wikipedia.org/")>-1)link_n[sx]=link_next[s];
if(link_next[s].indexOf("https://ja.wikipedia.org/")>-1)name_n[sx]=name_next[s];
}
number_n=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="https://ja.wikipedia.org"+de.substring(p1,p2);
return pp;
}
String change(String str){
int n;
for(n=1;n<11;n++){
str=rev(str);
}
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年09月05日 09:37