頂部導航開始 -->

獲取歷史上的今天方法

如何獲取歷史上的今天,本文將講述如何從其他網站將數據抓取到,并且在自己的網站中加入歷史上的今天功能。

如圖是獲取到的歷史上的今日的列表。具體樣式可以自己調節。

自學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號
  • 聯系郵箱:[email protected]
  • 交流請加微信:weibobf2899 或掃下方二維碼
双大床红利扑克1手APP