Thông tin video trang v.nhaccuatui.com cũng được lưu ở file xml, chúng ta đi tìm link xml đó để đọc thông tin là được, cũng không khó lắm, chỉ là làm cách nào để xác định được file xml đó nằm ở đâu? dạng như thế nào?
Giống như của nhaccuatui.com trang phiên bản video này file xml cũng có dạng: http://v.nhaccuatui.com/flash/xml?key=*
Khi vào xem video, chúng ta view source rồi kiếm từ khóa “play_key“, cái này chính là cái key trên link xml kia.
Ví dụ: http://v.nhaccuatui.com/tv-show/on-gioi-cau-day-roi-2015.7WfhOTHvMfE1.html?key=gf6VPxkkDukDU
View source sẽ thấy play_key=”174062a012f8239163deabe709a90ece“
Bỏ key vào link xml: http://v.nhaccuatui.com/flash/xml?key=174062a012f8239163deabe709a90ece
Vào link xml đó chúng ta view source lần nữa sẽ thấy thông tin các video của tivi show Ơn giời cậu đây rồi, tức là ta có thể get hết tất cả tập phim luôn. Đó là tất cả hướng làm, giờ chúng ta cùng thực hiện trên code.
Trước tiên ta phải có function curl:
function curl($url)
{
$ch = @curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$head[] = "Connection: keep-alive";
$head[] = "Keep-Alive: 300";
$head[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$head[] = "Accept-Language: en-us,en;q=0.5";
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36');
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_HTTPHEADER, $head);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Expect:'
));
$page = curl_exec($ch);
curl_close($ch);
return $page;
}
Và function getListMp4:
function getListMp4($link){
$content = curl($link); // đọc nội dung trang
$return = array();
preg_match("/play_key\=\"(.*)\"/",$content,$arr_preg); // tìm key
if($arr_preg){
$arrKeyXML = explode('"', $arr_preg[1]); // tách key trong chuỗi vừa tìm được
$linkXML = 'http://v.nhaccuatui.com/flash/xml?key='.$arrKeyXML[0]; // ghép key vào link xml
$xml_data = curl($linkXML); // đọc nội dung trang xml
$xml_string = str_replace("<![CDATA[","",$xml_data); // loại bỏ <![CDATA[ $xml_string = str_replace("]]>","",$xml_string); // loại bỏ ]]>
$xml_string = preg_replace('/&(?!#?[a-z0-9]+;)/', '&', $xml_string); // thay thế ký tự đặc biệt
$xml_arr = json_decode(json_encode((array) simplexml_load_string($xml_string)), 1); // chuyển đổi thành mảng
if($xml_arr['track']['item']){
$arrItem = $xml_arr['track']['item'];
foreach ($arrItem as $key => $item) {
$return[$key]['link480'] = $item['location']; // link video 480p
$return[$key]['link360'] = $item['lowquality']; // link video 480p
$return[$key]['link720'] = $item['highquality']; // link video 480p
$return[$key]['title'] = $item['title']; // title
$return[$key]['image'] = $item['image']; // link image
$return[$key]['time'] = $item['time']; // time
$return[$key]['view'] = $item['view']; // lượt view
}
}
}
return $return;
}
Mình đã comment chú thích từng dòng code rồi, cách dùng thì bạn chỉ cần điền link vào function nó sẽ trả về cho bạn 1 mảng chứa tất cả các link đó:
$link = "http://v.nhaccuatui.com/tv-show/on-gioi-cau-day-roi-2015.7WfhOTHvMfE1.html?key=gf6VPxkkDukDU";
$test = getListMp4($link);
echo "
<pre>";
print_r($test);
Nguồn:blogit.vn
0 nhận xét:
Đăng nhận xét