最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

如何抓取BT天堂电影数据

IT圈 admin 2浏览 0评论

如何抓取BT天堂电影数据

晚上休息,想弄两部好看的电影看看,

找了半天没找到想看的,

想到之前有个人爬知乎的用户数据,突发奇想,

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

只能说闲的蛋疼,哈哈,还能码下代码  ^_^


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抓取的速度还是蛮快的,4min不到,采集2w多条信息。

start:01:22:54

end: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天堂电影数据

晚上休息,想弄两部好看的电影看看,

找了半天没找到想看的,

想到之前有个人爬知乎的用户数据,突发奇想,

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

只能说闲的蛋疼,哈哈,还能码下代码  ^_^


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抓取的速度还是蛮快的,4min不到,采集2w多条信息。

start:01:22:54

end: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天堂抓取,并未涉及机密信息,因此本人不承担任何法律责任!

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



与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论