스누피(Snoopy)로 자동으로 댓글달기 프로그램 개발
페이지 정보
작성자 서방님 댓글 0건 조회 412회 작성일 18-12-24 16:10본문
<? include_once "./Snoopy.class.php"; $snoopy = new Snoopy(); function sendSnoopy(){ //print_r($data);exit; global $snoopy, $data; $host = "호스트주소"; $snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"; $snoopy->referer = $host; //로그인 echo "///////////////// 로그인 시작/////////////////////\n"; $snoopy->httpmethod = "POST"; $snoopy->submit($data['url_login'], array( $data['form_id'] => $data['id'], $data['form_pw'] => $data['pw'] )); $snoopy->setcookies(); $snoopy->fetch($host); echo "///////////////// 로그인 성공/////////////////////\n"; /* $result = $snoopy->results; echo "result = {$result}";exit; */ foreach($data['list_array'] as $url => $count){ echo "///////////////// {$url} 시작/////////////////////\n"; /* $snoopy->fetch($host); $result = $snoopy->results; echo "result = {$result}";exit; */ $snoopy->fetch($url); $result = $snoopy->results; //echo "url = {$url}\nresult={$result}";exit; preg_match_all('/<div class=\"list-img\">\n\t\t\t\t\t\t\t<a href=\"(.*?)\">/is', $result, $temp); //print_r($temp);exit; $url_list = $temp[1]; for($i = 0; $i < $count; $i++){ $detail_url = str_replace("&", "&", $url_list[$i]); //echo $detail_url."\n";exit; $args = explode("?", $detail_url); $get = explode("&", $args[1]); $bo_table = ""; $wr_id = ""; foreach($get as $value){ $ttt = explode("=", $value); if($ttt[0] == "bo_table"){ $bo_table = $ttt[1]; } else if($ttt[0] == "wr_id"){ $wr_id = $ttt[1]; } } //echo "bo_table = {$bo_table} / wr_id = {$wr_id}";exit; //url_page 로 제목, 쿠키url을 알아내자. $snoopy->fetch($detail_url); $result = $snoopy->results; //echo $result;exit; preg_match('/<h1 itemprop=\"headline\" content=\"(.*?)\">/is', $result, $temp); //print_r($temp);exit; $title = $temp[1] . " 굿굿굿!"; preg_match('/<div class=\"list-group font-12\"><a class=\"list-group-item break-word\" href=\"(.*?)\" target=\"_blank\">/is', $result, $temp); //print_r($temp);exit; $cookie_link = str_replace("&", "&", $temp[1]); //echo $cookie_link;exit; /* echo " title = {$title}\n cookie_link = {$cookie_link} "; exit; */ //필요하다면 별도의 쿠키까지 if(trim($cookie_link)){ $snoopy->httpmethod = "GET"; $snoopy->submit($cookie_link); $snoopy->setcookies(); } $snoopy->httpmethod = "POST"; $snoopy->submit($data['url_comment'], array( $data['form_comment'] => $title, "w" => "c", "bo_table" => $bo_table, "wr_id" => $wr_id, )); echo "url : {$detail_url} / count = {$count} / title = {$title}\n"; } echo "///////////////// {$url} 끝/////////////////////\n"; //exit; } } $data = array(); $data['form_id'] = "mb_id"; $data['form_pw'] = "mb_password"; $data['id'] = "로그인아이디"; $data['pw'] = "로그인패스워드"; $data['url_login'] = "http://도메인/bbs/login_check.php"; $data['url_comment'] = "http://도메인/bbs/write_comment_update.page.php"; $data['form_comment'] = "wr_content"; $data['list_array'] = array( "게시판리스트1" => 10, "게시판리스트2" => 5, "게시판리스트3" => 3, "게시판리스트4" => 2 ); echo "sendSnoopy Start\n"; sendSnoopy(); ?>
스누피(Snoopy) 클래스를 이용한 자동댓글 달기 소스입니다.
실험대상 사이트는 공개할 수가 없으며, 해당 사이트는 그누보드로 제작이 되어 있었음을 알려드립니다.
로직의 순서는 아래와 같습니다.
1. 사이트에 로그인을 한다.
2. 게시판 리스트 페이지에 접근한다.
3. 리스트 페이지에서 각각의 게시판 상세페이지로 이동하는 링크들을 수집한다.
4. 상세페이지에 접근한다.
5. 상세페이지에서 게시글 제목을 추출한다.
6. 상세페이지 제목 + "굿굿굿" 스트링 문자를 합쳐서 댓글을 입력한다.
위 4가지의 절차를 프로그램으로 자동으로 실행되게끔 제작하였습니다.
뭐 주석으로 나름 친절하게 설명을 달아두었기 때문에 구체적인 설명은 필요없을 것 같기도 합니다.
개발자라는 직업은 이럴때 참 좋은거 같습니다.
일일이 수작업으로 해야할 일을, 프로그램으로 만들어서 자동으로 돌릴수 있게도 하고 말이죠~
위 프로그램을 제작하기 위해서 필요한 기술및 지식
1. php - 너무나 당연하다... php로 만들었으니까.
2. 스누피 라이브러리 사용방법 - 이건 검색하면 다 나오는 거임.
3. 정규식 - 아무래도 제일 어려운 난관일 것입니다.
댓글목록
등록된 댓글이 없습니다.