如何获取历史上的今天,本文将讲述如何从其他网站将数据抓取到,并且在自己的网站中加入历史上的今天功能。
如图是获取到的历史上的今日的列表。具体样式可以自己调节。
获取步骤:
首先是找到一个拥有比较全的“历史上的今天”的网站,研究其源代码,找出其代码规律。
本文选择的是http://www.todayonhistory.com/网站,其源代码效果如图:
从图中的源代码可以看出,其规律是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; ?> |
代码运行效果实例如下
宠物免费领养小程序,欢迎来踩