>  기사  >  백엔드 개발  >  BT Paradise 영화 데이터를 가져오는 방법

BT Paradise 영화 데이터를 가져오는 방법

WBOY
WBOY원래의
2016-07-30 13:30:523041검색

밤에 쉬다가 볼만한 영화 두 편을 찾아보고 싶었는데

오래 검색했는데. 보고 싶은 것을 찾을 수가 없었다BT Paradise 영화 데이터를 가져오는 방법,

이전에 누군가가 Zhihu의 사용자 데이터를 크롤링하는 것을 생각하면 갑자기 변덕이 생겼습니다BT Paradise 영화 데이터를 가져오는 방법,

할 일 없으면 BT 파라다이스에서 영화정보를 다운받으세요데이터베이스를 확인하실 수 있습니다. 다음번엔 직접. BT Paradise 영화 데이터를 가져오는 방법BT Paradise 영화 데이터를 가져오는 방법

심심하다고 밖에 말할 수 없네요BT Paradise 영화 데이터를 가져오는 방법ㅋㅋㅋ , 여전히 코딩 가능 ^_^


1. 홈페이지 HTML 소스코드를 가져옵니다.

<span style="font-size:24px;">$url = "www.bttiantang.cc";
$html = shell_exec("curl $url");</span>

2. 총 페이지 수, 총 페이지 수를 가져옵니다. 영화 (정기 매칭)

<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>

4. 데이터베이스에 삽입하면 완료

일반적으로 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.