Heim > Backend-Entwicklung > PHP-Tutorial > So greifen Sie auf BT Paradise-Filmdaten zu

So greifen Sie auf BT Paradise-Filmdaten zu

WBOY
Freigeben: 2016-07-30 13:30:52
Original
3068 Leute haben es durchsucht

Ich habe mich nachts ausgeruht und wollte zwei gute Filme zum Anschauen finden

Ich habe aber lange gesucht konnte nicht finden, was ich sehen wollteSo greifen Sie auf BT Paradise-Filmdaten zu,

Ich hatte plötzlich eine Laune, als ich daran dachte, dass jemand zuvor Zhihus Benutzerdaten gecrawlt hatSo greifen Sie auf BT Paradise-Filmdaten zu,

Wenn Sie nichts zu tun haben, laden Sie die Filminformationen von BT Paradise herunter Sie können die Datenbank überprüfen direkt beim nächsten Mal. So greifen Sie auf BT Paradise-Filmdaten zuSo greifen Sie auf BT Paradise-Filmdaten zu

Ich kann nur sagen, dass mir so langweilig istSo greifen Sie auf BT Paradise-Filmdaten zu, haha , immer noch in der Lage zu programmieren ^_^


1. Besorgen Sie sich den HTML-Quellcode der Website

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

2. Ermitteln Sie die Gesamtzahl der Seiten, Gesamtzahl von Filmen (reguläre Übereinstimmung)

<span style="font-size:24px;">preg_match("/<span class=\"pageinfo\">.*?<\/span>/", $html, $pageCount);
preg_match_all("/\d{1,10000}/",$pageCount[0],$pageCount);</span>
Nach dem Login kopieren

3. Erfassen Sie Filminformationen (reguläre Matching-Informationen)

<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>
Nach dem Login kopieren

4. In die Datenbank einfügen und fertig

Im Allgemeinen ist die Geschwindigkeit des PHP-Crawlings recht hoch. Es dauert weniger als 4 Minuten und sammelt mehr als 20.000 Informationen.

Beginn:01:22:54

Ende:01 :26:11



Beigefügter Datenbank-Screenshot:



Quellcode beigefügt:

<?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')");
    }

}

?>
Nach dem Login kopieren

Diese Filminformationen stammen von BT Paradise und beinhalten keine vertraulichen Informationen Daher übernehme ich keine rechtliche Verantwortung!

Wenn relevante Filminformationen Ihre Urheber- oder geistigen Eigentumsrechte oder andere Interessen betreffen, informieren Sie uns bitte und sie werden so bald wie möglich danach gelöscht Bestätigung.

Urheberrechtserklärung: Dieser Artikel Ursprünglich vom Blogger verfasste Artikel dürfen ohne die Genehmigung des Bloggers nicht reproduziert werden.

Das Obige stellt vor, wie BT Paradise-Filmdaten gecrawlt werden, einschließlich inhaltlicher Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage