顶部导航开始 -->

获取历史上的今天方法

如何获取历史上的今天,本文将讲述如何从其他网站将数据抓取到,并且在自己的网站中加入历史上的今天功能。

如图是获取到的历史上的今日的列表。具体样式可以自己调节。

自学php博客

获取步骤:

首先是找到一个拥有比较全的“历史上的今天”的网站,研究其源代码,找出其代码规律。

本文选择的是http://www.todayonhistory.com/网站,其源代码效果如图:

自学php博客

从图中的源代码可以看出,其规律是id为container的ul标签下面,然后是里面的class为a的div标签中的a标签内容。

找出其中的规律之后,我们需要一个专门用来匹配html代码的工具simple_html_dom.php,可以通过这个simple_html_dom.php类来解析html文档,对其中的html元素进行操作 (PHP5+以上版本)。simple_html_dom.php文件下载地址是:http://pan.baidu.com/s/1pL6fknD

下载好simple_html_dom.php类文件之后,我们可以自定义php程序来抓取历史上的今天数据。

代码如下:php代码下载地址:http://pan.baidu.com/s/1slAeOTB

function getHistoryInfo(){

include_once('simple_html_dom.php');

try {

$url = "http://www.todayonhistory.com/";

$html_analysis = file_get_html($url);

if (!isset($html_analysis)){

$html_analysis->clear();

return "获取失败,请刷新重试";

}else{

$contentStr = "历史上的".date("m")."月".date("d")."日:\n";

$contentStr .=' ';

foreach($html_analysis->find('ul[id="container"] div[class="t"] a') as $item) {

$contentStr .= str_replace(date("m")."月".date("d")."日","",$item->plaintext)."\n";

$contentStr .=' ';

if (strlen($contentStr) > 2000){break;}

}

$html_analysis->clear();

return trim($contentStr);

}

}catch (Exception $e){

}

}

$history=getHistoryInfo();

$history_list=explode(' ',$history);

$html='';

foreach($history_list as $k => $v){

$html.=$v;

$html.='
';

}


?>

echo $html;

?>



代码运行效果实例如下

 

自学php博客
请先登陆后发表评论
  • 最新评论
  • 总共1条评论
自学php博客

ZiShuo:一句就搞定http://www.todayonhistory.com/index.php?m=content&c=index&a=json_event&pagesize=40&month=10&day=12

2016-10-13 10:17:23 回复

自学php博客
  • 哲涵 回复 ZiShuo:这样拿到数据,还是不能按自己的格式显示,还是需要匹配出内容,才能自由控制显示效果。而且是确实拿到了数据。
  • 2016-10-13 10:41:36 回复
  • © 2014-2016 zixuephp.cn 版权所有
  • ICP证:皖ICP备16012107号
  • 联系邮箱:510082587@qq.com
  • 交流请加微信:weibobf2899 或扫下方二维码