使用curl单独抓取http://jobs.hubu.edu.cn/Detail.aspx?ArticleChannelId=81&ArticleId=5722可行,但是如果抓取相同类型的一系列网站就会出错,将他们放在数组
$linkList中,分别是http://jobs.hubu.edu.cn/Detail.aspx?ArticleChannelId=81&ArticleId=5722, http://jobs.hubu.edu.cn/Detail.aspx?ArticleChannelId=81&ArticleId=5325等等。
function getJobsHubuNotice() { $curl = curl_init('http://jobs.hubu.edu.cn/List.aspx?ArticleChannelId=81'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); //内容处理 $result = strip_tags($result,'<a>'); $result = stristr($result, 'nbsp当前位置:'); $result = str_replace('nbsp当前位置:', '', $result); $result = stristr($result, '当前1/2页',true); $result = stristr($result, '通知公告'); $result = str_replace('通知公告</a>', '', $result); preg_match_all('/(?<=href=\").*?(?=\")/', $result, $arrayTemp); $linkList = $arrayTemp[0]; preg_match_all('/(?<=title=\").*?(?=\")/', $result, $arrayTemp); $titleList = $arrayTemp[0]; preg_match_all('/(?<=\[)\d*\-\d*(?=\])/', $result, $arrayTemp); $dateList_temp = $arrayTemp[0]; $dateList = array(); $linkList = str_replace('Detail.aspx', 'http://jobs.hubu.edu.cn/Detail.aspx', $linkList); foreach ($dateList_temp as $key => $value) { $dateList[$key] = date('Y').'-'.$value; } $JobsHubu = array(); //分别获得网页上的每条通知的标题,链接,时间 $JobsHubu[0] = $dateList; $JobsHubu[1] = $titleList; $JobsHubu[2] = $linkList; return $JobsHubu; } // function makePage($link) { ....... //省略部分代码 else if(starts($link,'jobs.hubu')) { echo "进入makePage函数"; echo "处理网页".$link.'<br/>'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL , $link); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); //echo $result; //echo "result结束"; $result = strip_tags($result); $result = stristr($result, ' > 通知公告'); $result = str_replace(' > 通知公告', '', $result); $result = stristr($result, '$(document).ready',true); $result = trim($result); $result = str_replace("\r\n", '<br/>', $result); $result = preg_replace('/(\<br\/\>){1,}/', '<br/>', $result); echo $result; echo '<br/><br/>'; echo "退出makePage函数"; return $result; } }
先用getJobsHubuNotice()函数获取新闻的链接,标题,日期,然后用makePage()函数获取内容
这是在makePage内部打印链接的结果,链接用浏览器打开没有问题.