밤에 쉬다가 볼만한 영화 두 편을 찾아보고 싶었는데
오래 검색했는데. 보고 싶은 것을 찾을 수가 없었다,
이전에 누군가가 Zhihu의 사용자 데이터를 크롤링하는 것을 생각하면 갑자기 변덕이 생겼습니다,
할 일 없으면 BT 파라다이스에서 영화정보를 다운받으세요데이터베이스를 확인하실 수 있습니다. 다음번엔 직접.
심심하다고 밖에 말할 수 없네요ㅋㅋㅋ , 여전히 코딩 가능 ^_^
1. 홈페이지 HTML 소스코드를 가져옵니다.
<span style="font-size:24px;">$url = "www.bttiantang.cc"; $html = shell_exec("curl $url");</span>
<span style="font-size:24px;">preg_match("/<span class=\"pageinfo\">.*?<\/span>/", $html, $pageCount); preg_match_all("/\d{1,10000}/",$pageCount[0],$pageCount);</span>
3. 영화 정보 캡쳐(정기 매칭 정보)
<span style="font-size:24px;">preg_match("/\d{4}\/\d{2}\/\d{2}/" , $pageInfo[0][$i], $updateTime); preg_match("/<font color=\"#FF6600\">(.*?)<i>/" , $pageInfo[0][$i], $movieName); preg_match("/<strong>(\d{1})<\/strong>/" , $pageInfo[0][$i], $movieScore_int); preg_match("/<em class=\"fm\">(\d{1})<\/em>/" , $pageInfo[0][$i], $movieScore_decimal); preg_match("/href=\"(.*?)\"/" , $pageInfo[0][$i], $movieUrl); preg_match("/<p class=\"des\">(.*?)<\/p>/" , $pageInfo[0][$i], $actor); </span>
일반적으로 PHP 크롤링 속도는 상당히 빠릅니다. 4분도 채 걸리지 않으며 20,000개 이상의 정보를 수집합니다.
시작:01:22:54
끝:01 :26:11
첨부된 데이터베이스 스크린샷:
소스코드 첨부 :
<?php $url = "www.bttiantang.cc"; $html = shell_exec("curl $url"); preg_match("/<span class=\"pageinfo\">.*?<\/span>/", $html, $pageCount); preg_match_all("/\d{1,10000}/",$pageCount[0],$pageCount); $pageSize = intval($pageCount[0][0]); $movieCount = $pageCount[0][1]; $conn = mysql_connect('***','***',''); mysql_select_db('***',$conn); mysql_query('set names utf8',$conn); for($j=1;$j<=$pageSize;$j++){ $movieHtml = shell_exec("curl $url?PageNo=$j"); preg_match_all("/<div class=\"item cl\">.*?<\/div>/s", $movieHtml, $pageInfo); for($i=0;$i<count($pageInfo[0]);$i++){ preg_match("/\d{4}\/\d{2}\/\d{2}/" , $pageInfo[0][$i], $updateTime); /******clear ad*****/ if(empty($updateTime))continue; /*******************/ $updateTime = str_replace('/','-',$updateTime[0]); preg_match("/<font color=\"#FF6600\">(.*?)<i>/" , $pageInfo[0][$i], $movieName); /*****same conditions*****/ if(empty($movieName)) preg_match("/<b>(.*?)<i>/" , $pageInfo[0][$i], $movieName); if(empty($movieName)) preg_match("/<b>(.*?)<\/b>/" , $pageInfo[0][$i], $movieName); /************************/ $movieName = $movieName[1]; preg_match("/<strong>(\d{1})<\/strong>/" , $pageInfo[0][$i], $movieScore_int); $movieScore_int = $movieScore_int[1]; preg_match("/<em class=\"fm\">(\d{1})<\/em>/" , $pageInfo[0][$i], $movieScore_decimal); $movieScore_decimal = $movieScore_decimal[1]; $movieScore = floatval($movieScore_int.'.'.$movieScore_decimal); preg_match("/href=\"(.*?)\"/" , $pageInfo[0][$i], $movieUrl); $movieUrl = $movieUrl[1]; preg_match("/<p class=\"des\">(.*?)<\/p>/" , $pageInfo[0][$i], $actor); $movieActor = str_replace("<em>",'',str_replace("</em>",'',$actor[1])); mysql_unbuffered_query("insert into movie (name,actor,url,update_ts,score) values ('$movieName','$movieActor','$movieUrl',<span style="white-space:pre"> </span>'$updateTime','$movieScore')"); } } ?>
본 영화 정보는 BT 파라다이스에서 가져온 것으로, 기밀정보와는 관련이 없습니다. 그러므로 저는 어떠한 법적 책임도 지지 않습니다!
귀하의 저작권이나 지적재산권, 기타 이익과 관련된 영화 정보가 있는 경우 알려주시면 즉시 삭제하겠습니다. 확인 후 최대한
저작권 표시: 이 글 블로거가 직접 작성한 글은 블로거의 허락 없이 복제할 수 없습니다.
위 내용은 내용적인 측면을 포함하여 BT Paradise 영화 데이터를 크롤링하는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.