欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何抓取BT天堂电影数据

程序员文章站 2024-04-03 08:24:16
...
晚上休息,想弄两部好看的电影看看,

找了半天没找到想看的如何抓取BT天堂电影数据

想到之前有个人爬知乎的用户数据,突发奇想如何抓取BT天堂电影数据

没事把BT天堂的电影信息爬下来,下次阔以直接查数据库。如何抓取BT天堂电影数据如何抓取BT天堂电影数据

只能说闲的蛋疼如何抓取BT天堂电影数据,哈哈,还能码下代码 ^_^


1.抓取网站html源码

$url = "www.bttiantang.cc";
$html = shell_exec("curl $url");

2.获取总页数,电影总数(正则匹配)

preg_match("/.*?/", $html, $pageCount);
preg_match_all("/\d{1,10000}/",$pageCount[0],$pageCount);

3.抓取电影信息(正则匹配信息)

preg_match("/\d{4}\/\d{2}\/\d{2}/" , $pageInfo[0][$i], $updateTime);

preg_match("/(.*?)/" , $pageInfo[0][$i], $movieName);
        
preg_match("/(\d{1})/" , $pageInfo[0][$i], $movieScore_int);
     
preg_match("/(\d{1})/" , $pageInfo[0][$i], $movieScore_decimal);
        
preg_match("/href=\"(.*?)\"/" , $pageInfo[0][$i], $movieUrl);
      
preg_match("/

(.*?)/" , $pageInfo[0][$i], $actor);


4.插入数据库,大功告成

总体来说,php抓取的速度还是蛮快的,4min不到,采集2w多条信息。

start:01:22:54

end:01:26:11


如何抓取BT天堂电影数据

附数据库截图:


如何抓取BT天堂电影数据

附源码:

.*?/", $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.*?/s", $movieHtml, $pageInfo);
    for($i=0;$i(.*?)/" , $pageInfo[0][$i], $movieName);
        /*****same conditions*****/
        if(empty($movieName))
            preg_match("/(.*?)/" , $pageInfo[0][$i], $movieName);
        if(empty($movieName))
            preg_match("/(.*?)/" , $pageInfo[0][$i], $movieName);
        /************************/
        $movieName = $movieName[1];

        preg_match("/(\d{1})/" , $pageInfo[0][$i], $movieScore_int);
        $movieScore_int = $movieScore_int[1];
        preg_match("/(\d{1})/" , $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("/

(.*?)/" , $pageInfo[0][$i], $actor); $movieActor = str_replace("",'',str_replace("",'',$actor[1])); mysql_unbuffered_query("insert into movie (name,actor,url,update_ts,score) values ('$movieName','$movieActor','$movieUrl', '$updateTime','$movieScore')"); } } ?>

本电影信息属于从BT天堂抓取,并未涉及机密信息,因此本人不承担任何法律责任!

若有相关电影信息涉及您的版权或知识产权或其他利益,请告知,确认后会尽快删除。

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了如何抓取BT天堂电影数据,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

如何抓取BT天堂电影数据

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频