PHP经验分享

PHP抓取卫视直播源

2018-12-21  本文已影响4人  又起风了_

以下代码只用于个人娱乐,请勿用于商业用途,否则后果自负。

由于业余爱好,花了点时间用php+simple_html_dom 类库,简单实现了抓取好趣网的各卫视等直播源,simpleHtmlDOM类请至sourceforge官网下载

<?php
/**
 * 获取好趣网视频直播源
 *
 * Created by PhpStorm.
 * User: mac
 * Date: 2018/12/21
 * Time: 上午11:32
 */


$base_url = 'http://www.haoqu.net';
$types = [
//    1,//cctv频道
    2,//卫视频道
//    3,//省市频道
//    4,//港澳频道
//    5,//国外频道
];
include 'simplehtmldom/simple_html_dom.php';
//$shd = new simple_html_dom();
$chanel_urls = [];
foreach ($types as $type) {
    $end_point = $base_url .'/'. $type .'/';
    //获取频道列表
    //$html = file_get_contents($end_point);
    $html = file_get_html($end_point);
    $all_a = $html->find('.p-item');
    foreach ($all_a as $item) {
        $href = $item->children(0)->attr['href'];
        $url = $base_url . $href;
        $title = $item->children(0)->children[1]->children[0]->innertext;
        $title= iconv('gbk', 'utf-8', $title);
        //获取页面直播源
        $chanel_page = file_get_html($url);
        $data_players = $chanel_page->find('[data-player]');
        $dp_ids = [];
        foreach ($data_players as $dp) {
            $dp_id =  $dp->attr['data-player'];
            $dp_url = 'http://www.haoqu.net/e/extend/tv.php?id=' . $dp_id;
            //这里我简单粗暴用了file_get_contents,大家可以用curl代替可以提升些速度
            $tmp = file_get_contents($dp_url);
            $tmp = iconv('gbk', 'utf-8', $tmp);
            //从中找到signal
            $pattern = '/signal =[\s\S]*?;/';
            preg_match($pattern, $tmp, $maches);
            if (isset($maches[0])) {
               $arr =  explode('$', $maches[0]);
               $chanel_urls[$type][$title][] = $arr[1];
            }
        }
    }
}
//时间仓促,这里直接打印出数据;有时间的同学可以存入文件或数据库
var_dump($chanel_urls);

结果如下图:


QQ20181221-0.jpg

播放,简单的可以用VLC,大家可以下载试试

22.jpg
上一篇 下一篇

猜你喜欢

热点阅读