080920~21
사단법인 자유 오픈소스 소프트웨어 연합회에서 후원하는
The Way Of Approaching행사에 다녀왔습니다
제작자:히로스에료코_팬-_-v 흑엽
os: 리눅/bsd
필요한 명령어: wget,lynx,iconv(입문자라 모듈대신 명령어로 때웠습니다.)
사용언어: perl
모듈:사용안함(하수인 관계로 아는게 없어서요....)
펄 해커쏜 분들이 없었다면 하룻밤에 못 만들었을 겁니다.
새벽까지 괴롭혀서 죄송합니다;;; 저의 과도한 질문 문에 해커쏜 프로젝트가 늦어진거 같네요--;;
하지만 또 그런기회가 있다면 당장갈꺼에요^_^;;; 진님네로ㄱㄱ?
기능:
1.일본드라마 시청자 게시판 게시물 본문만 추출후 저장.
2.추출된 본문을 번역기를 통해 일괄 번역.
3.한국어로 번역된 자료를 검색.
코드 동영상설명
1_web_get.pl 게시물을 추출합니다.
head iconv로 utf8로 문자셋을 변경하며 그에따라 웹페이지도 깨지지 않기 위해 매타태그를 넣어줌
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
make.pl 추출한 웹페이지에서 본문만 남기고 제거합니다.
#!/usr/bin/perl
use strict;
use warnings;
my $fileName = shift( @ARGV );
if( -d $fileName )
{ die "$fileName 은 폴더야.n"; }
-e $fileName || die "$fileName 은 읽을수 없어 허걱.n";
-T $fileName || die "$fileName 은 텍스트 파일이 아니야.n";
open( fileHandle, $fileName ) || die "$fileName 을 못열겠어.n";
# my $Sline = '';
# while(<fileHandle>) {
# chomp; $Sline .= $_;
# }
#느린 읽기 방법
my @Aline = <fileHandle>; #파일을 한줄로 읽어서 배열에 저장
close( fileHandle ); # 다 읽었으니 닫습니다. 이제 쓸일없음.
my $Sline = join('', @Aline); # 배열을 구분기호없이 즉 ''으로 해서
# 일반변수에 저장
$Sline =~ s/n//g; #줄바꿈 제거하여 한줄html을 만듬
$Sline =~ s!<table width="100" height="5" border="0" cellpadding="0" cellspacing="0"> <tr> <td><img src="../img/sq.gif" width="1" height="1"></td> </tr> </table> <table width="340" border="0" cellpadding="0" cellspacing="10" bgcolor="#FFFCF4"> <tr> <td class="f_default_medium">!n$&!g;
#게시물 내용이 들어있는 table 태그의 시작에서 줄바꿈
# s!로 특수 기호를 무력화 한후 /대신 !로 구분을 하며
# $&기호는 그전 !~!사이 범위의 문자열을 말함
$Sline =~ s/d{2}:d{2}:d{2}</font></td> </tr> </table>/$&n/g;
#게시물과 관련된 table 태그 끝에서 줄바꿈
my $head = `cat ./head`;
print $head; #utf-8로 변환된 일본어를 웹페이지에서 표시하기 위해 매타태그를 출력
@Aline = split( /n/, $Sline);
#줄바꿈으로 구별된 table 태그를 루프로 돌려 검증하기 위해 배열로 저장함.
foreach my $elem ( 0..$#Aline)
{
$_=$Aline[$elem];
if ( /[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/i )
{
print $_."n";#작성시간이 검색되면 게시물로 판단함.
}
}
2_make_all.pl make.pl작업을 반복하여 결과를 한페이지에 합체
#!/usr/bin/perl
use strict;
use warnings;
`rm -rf make.html`; # >> 하기전에 이전파일 삭제
for ( 0..43 )
{
`./make.pl $_.html|iconv -c -f iso-2022-jp -t utf-8 >> make.html`;
}
#네이버 번역기가 일본어를 인식할수 있도록 utf-8로 문자셋 변경
3_korea.sh 합체된 게시물 페이지를 한국어로 번역합니다.
search.sh table태크로 둘어싸인 게시물 본문이 make.pl에 의해 한줄로 만들어 졌기 때문에 egrep으로 검색이 가능합니다.
#!/bin/sh
rm -rf result.html
cat head > result.html
egrep $1 korea.html >> result.html