昨天写了个采集搜视网的电视节目预告,刚好今天有心情,想采下其他网站提供的节目预告,发现  电视猫wap版 的提供的节目预告也蛮好采(需要正则)....感谢移动互联网!

电视猫的 wap版地址是 http://wap.tvmao.com/  点击相应的电视台 进去就能看到 相应的 节目预告。

如:http://wap.tvmao.com/cctv.jsp  里的就是 央视的 相应频道列表  点击 相应的 频道 就可以看到  该频道的 的节目预告;

http://wap.tvmao.com/program.jsp?p=CCTV&c=CCTV1&w=6  就是 CCTV-1 周六 的节目预告 。

分析 页面html 得知   /program.jsp?p=CCTV&c=CCTV1 来自  http://wap.tvmao.com/cctv.jsp 页面的频道列表里  而 w=6 表示 周六

下面是采集央视的测试代码:

<?php
/*** Created by JetBrains PhpStorm.* User: keygle* Date: 13-8-3* Time: 下午2:04* From  www.cnblogs.com/keygle*//*** [curl 带重试次数]* @param  [type]  $url     [访问的url]* @param  [type]  $post    [$POST参数]* @param  integer $retries [curl重试次数]* @return [type]           [description]*/
function curlGetHtml($url, $post = null, $retries = 3){$ch = curl_init();if(is_resource($ch) === true){curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_FAILONERROR, true);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_REFERER, "http://wap.tvmao.com/");curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36");if(isset($post) === true){curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, (is_array($post) === true) ? http_build_query($post, "", "&"): $post);}$result = false;while(($result === false) && (--$retries > 0)){$result = curl_exec($ch);}curl_close($ch);}return $result;
}/*** [getTvUrl 获得电视台链接数组]* @param  [type] $tvListHtml [页面html ]* @return [type]             [description]*/
function getTvUrl($tvListHtml){$tvListArray = array();//正则匹配 url 和 电视台名preg_match_all('#<a href="/([^"]+)">(.*?)</a><br/>#i', $tvListHtml, $matches);foreach ($matches[1] as $key => $value) {$tvListArray[$key]['url'] ="http://wap.tvmao.com/".html_entity_decode($value); //html 实体转换$tvListArray[$key]['name'] = $matches[2][$key];}return $tvListArray;
}/*** [getPlayItems 获得电视节目预告]* @param  [type] $tvUrl [description]* @return [type]        [description]*/
function getPlayItems($tvUrl){$playItems = array();$itemHtml = curlGetHtml($tvUrl);preg_match_all("#r/>([^<]+)?<b#i", $itemHtml, $matches);array_shift($matches[1]); //去掉数组的第一个$playItems = $matches[1];return $playItems;
}//获得央视 的所有频道
$url = "http://wap.tvmao.com/cctv.jsp";
$tvListHtml  = curlGetHtml($url);
$tvListArray = getTvUrl($tvListHtml);
print_r($tvListArray);
// 获得cctv1的 周六 节目预告
$tvUrl = "http://wap.tvmao.com/program.jsp?p=CCTV&c=CCTV1&w=6";
$playItems = getPlayItems($tvUrl);
print_r($playItems);

转载于:https://www.cnblogs.com/keygle/p/3235105.html

采集练习(十一) php 获得电视节目预告---数据来自电视猫相关推荐

  1. 采集练习(十) php 获得电视节目预告---数据来自搜视网

    前几天逛湖南卫视,偶然间发现它的网站上也有节目预告,一看源码,居然是来自搜视网的xml,于是就想获得它的数据(页面直接ajax加载估计会有跨域问题) 前阵子也写过另一个方法获得 节目预告(采集练习(七 ...

  2. 采集练习(七) php 获得电视节目预告(一周节目)

    2011年时公司有这个采集电视节目预告这个需求,那时是其他同事写的,今天在网上找了一下,采集那些电视网站都需要用到正则匹配,一番查找之后终于在手机CCTV(m.cctv.com)里的找到了简单的获取节 ...

  3. php采集节目单,电视节目预告

    package api.jisuapi.tv; import api.util.HttpUtil; import net.sf.json.JSONArray; import net.sf.json.J ...

  4. php采集节目单,基于PHP的电视节目预告示例代码-六派数据

    示例代码 本代码示例是基于PHP的六派数据接口进行数据请求API服务请求的代码示例,使用前你需要: 以下是完整代码示例: require_once("curl.func.php") ...

  5. 网站添加电视节目预告功能 php代码,电视节目预告API免费接口,电视节目预告API接口付费定制-进制数据...

    package api.binstd.tv; import api.util.HttpUtil; import net.sf.json.JSONArray; import net.sf.json.JS ...

  6. 采集练习(一) php 获得全国的小学(数据来自腾讯朋友网)

    注:发现腾讯朋友网已经改版,部分参数需要自己获得修改 !!! 年前有个需求获得某省的小学数据,分析了下朋友网的小学学校发现可以获得相关数据. 如获得  湖南省郴州市宜章县的全部小学 发现网页请求的地址 ...

  7. 如何做电视节目的视频直播(电视台节目直播)

    [  原创文章  ] STEP1 . 硬件准备及设备连接 场景说明: 1.电视节目直播一般是用于电视信号的直播,对一个电视频道的的信号进行直播,常用于电视台.校园电视节目等: 2.电视信号直播,实现在 ...

  8. 一文搞懂广播电视节目制作经营许可证办理流程

    目录 一.什么是广播电视节目制作经营许可证 业务应用: 什么单位可以申请<广播电视节目制作经营许可证>? 申请材料: 申请流程: 有效期 一.什么是广播电视节目制作经营许可证 广播电视节目 ...

  9. 基于用户的电视节目推荐算法实例

    # -*- coding: utf-8 -*- """ Created on Thu Nov 1 10:29:52 2018@author: AZ "" ...

最新文章

  1. 详解一个ThreadLocal 的谜题
  2. pdf 天线理论与技术 钟顺时_虚拟仿真技术 | 基于HFSS仿真软件的微波天线课程教学探索...
  3. spring事务(Transaction)的七种事务传播行为及五种隔离级别
  4. 能够显著降低焦虑的两种方法
  5. devexpress卸载不干净_最好用的卸载工具,清理彻底,专治各种流氓软件
  6. 从方法返回Java 8的可选项时的注意事项
  7. 同一交换机的不同VLAN如何隔离?
  8. leveldb登山之路——cache
  9. Maven(2)--- 环境配置
  10. oracle备份文件命令,oracle备份命令使用实例
  11. 判断 失效_复合材料渐进失效Hashin模型及参数详解
  12. 《21天学通C语言(第7版)》一6.4 小 结
  13. 十年程序人生__转自黎活明
  14. java实现角谷步数
  15. 计算机 中职生学情分析,信息技术学情分析
  16. usrp n310测试总结---环境搭建篇2-uhd-dpdk干货
  17. 计算机桌面颜色怎么换,电脑桌面字体颜色怎么改
  18. 钢条切割问题(自顶向下)
  19. 《软件工程——实践者的研究方法》重难点复习笔记(第八章——理解需求)
  20. 2021年高考安庆10中成绩查询,2021年安庆高中学校排名及录取分数线排名

热门文章

  1. 同方国芯:从3000万到100亿发展纪实
  2. 拍乐云远程视频银行解决方案,为金融数字化注入“新活力”
  3. PostgreSQL分区表
  4. linux启动根文件系统
  5. C++选修课程管理系统(嵌套类、对象数组、文件)
  6. 液晶显示器不支持最佳分辨率的解决办法 22寸液晶 不支持1680*1050
  7. Estrogen Protects Neurotransmission Transcriptome During Status Epilepticus
  8. w ndows7太卡了,完美解决windows7卡在正在启动windows 一直卡在正在启动window
  9. jsp页面的调试方法
  10. 双非渣硕的秋招之路总结(已拿抖音研发岗SP)