パスワードを忘れた? アカウント作成
500452 journal

float32の日記: 自分、不器用なもので…… 6

日記 by float32

perlとか使えばもっとすっきり書けるんでしょうが、自分、オーカー(awker)なもので....
#あまりにも泥臭いスクリプトだが、同じことを処理しているスクリプトを見たことないので
##もしあったら教えてくださいお願いしますorz。もっと綺麗なソースを見たい。

某所のコミック発売一覧のhtmlを整形して、Google calenderにインポートできる形式の
csvに出力させるスクリプトを曝してみるテスト。
本当はこれで加工済みのデータをGoogle Calenderで公開すればいいやと思ったら、
元サイトがサイト上情報の著作権を主張していたw

面倒くさいんで加工方法のみ曝すテスト。
awkスクリプトなんてだれもチェックしないだろうけど。
ちなみにテストはsjis環境でのwindowsでしました。
初期テストではnkfで文字コードを変換したlinuxでした。ちなみに。

【注釈】
*2007年3月のデータでのみチェック。その他の月では想定外のエラーが出ると思う(出版社名へのad hockなコマンドが多い)。
*出力は出版社ごとに「(出版社名).csv」に出力される
成年コミックも出力されるのでcsvを適当に編集してからGoogle Calenderに取り込むとよかれ。
*まあ、編集社ごと出力じゃなくて、全部一括して出力してExcelで編集するのが簡単かもね。
スクリプト適当に書き換えればできるけど、差分小さいのであげるの面倒。

{FS="</font>";if(NR==1){logt="log";};
if(index($1,"width")!=0&&index($0,"発売日")==0){
  idx=index($1,"-1");
  if(index($1,"tr")!=0)
    {i=1;  day=substr($1,idx+4);
    if(index(day,"上")!=0){day=substr(day,1,2)"/8"};
    if(index(day,"中")!=0){day=substr(day,1,2)"/15"};
    if(index(day,"下")!=0){day=substr(day,1,2)"/28"};
    dd=substr(day,4.2);dp_tmp=dd+1;
    if(dp_tmp>9){dp=substr(day,1,3)""dp_tmp}else{dp=substr(day,1,3)""dp_tmp;}
  }else{
      data[i]=substr($1,idx+4);
      i_wbr=index(data[i],"<wbr>");
      if(i_wbr!=0){
      tmp1=substr(data[i],1,i_wbr-1);
      tmp2=substr(data[i],i_wbr+6);
       data[i]=tmp1""tmp2;
    }
      i_wbr=index(data[i],"/");
      if(i_wbr!=0){
      tmp1=substr(data[i],1,i_wbr-1);
      tmp2=substr(data[i],i_wbr+1);
       data[i]=tmp1"/"tmp2;
    }
    i++};
  if(index($2,"/tr")!=0){
    if(index(data[1],"iframe")==0&&index(data[2],"iframe")==0&&
       index(data[3],"iframe")==0&&index(day,"iframe")==0){
    if(index(logt,data[1])==0){print data[1];print "件名,開始日,開始時刻,終了日,終了時刻,終日イベント,場所"> data[1]".csv";
           logt=logt""data[1];}
    print ""data[2]data[3]","yr"/"day",0:00:00,"yr"/"dp",0:00:00,True,"data[1],data[4]"円" >> data[1]".csv"}}}}

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

読み込み中...