package sunday;
import java.io.*;
public class pro {
String[] credit=new String[5000];
String[] title=new String[5000];
String[] prev=new String[5000];
String[] next=new String[5000];
String[] link_prev=new String[5000];
String[] link_next=new String[5000];
int number;
String web;
int s,datanumber;
String[] data=new String[9000];
String[] link=new String[9000];
public static void main(String[] args) {
pro te=new pro();
}
pro(){
readx("data.csv");
for(s=2;s<datanumber+1;s++){
String[] x=data[s].split(",");
link[s-1]=x[1];
}
int tr;
for(tr=1;tr<datanumber;tr++){
String urlx=link[tr];
link sub=new link();
sub.makedata(urlx);
title=sub.title;
number=sub.number;
credit=sub.credit;
prev=sub.prev;
next=sub.next;
link_prev=sub.link_prev;
link_next=sub.link_next;
web=urlx;
int s;
writexml("data/"+tr+".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("<credit>");
pw.print(credit[s]);
pw.print("</credit>");
pw.print("<title>");
pw.print(title[s]);
pw.print("</title>");
pw.print("<link>");
pw.print(web);
pw.print("</link>");
pw.print("<prev>");
pw.print(prev[s]);
pw.print("</prev>");
pw.print("<link_prev>");
pw.print(link_prev[s]);
pw.print("</link_prev>");
pw.print("<next>");
pw.print(next[s]);
pw.print("</next>");
pw.print("<link_next>");
pw.print(link_next[s]);
pw.println("</link_next>");
}
System.out.println("ファイルに書きこみました。");
pw.close();
} catch(IOException ep){ System.out.println("入出力エラーです。"); }
}
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 sunday;
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[] credit=new String[5000];
String[] memo=new String[5000];
int number;
String[] title=new String[5000];
String[] prev=new String[5000];
String[] next=new String[5000];
String[] link_prev=new String[5000];
String[] link_next=new String[5000];
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("前番組</th>")>-1)h=h+1;
if(tab[s].indexOf("次番組</th>")>-1)h=h+1;
if(h==2)sx=sx+1;
if(h==2)tabx[sx]=tab[s];
}
number=sx;
int tx=0;
int tr;
for(tr=1;tr<number+1;tr++){
String[] x=tabx[tr].split("</tr>");
int s1=0;
for(s=1;s<x.length;s++){
if(x[s].indexOf("前番組</th>")>-1)s1=s;
}
memo[tr]=x[s1+1];
credit[tr]=change(x[s1-1]);
}
for(tr=1;tr<number+1;tr++){
String[] x1=memo[tr].split("</td>");
title[tr]=change(x1[1]);
link_prev[tr]="https://ja.wikipedia.org"+alpha(x1[0]);
prev[tr]=change(beta(x1[0]));
link_next[tr]="https://ja.wikipedia.org"+alpha(x1[0]);
next[tr]=change(beta(x1[2]));
}
}
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日 17:15