$url = "http://zhidao.baidu.com/browse/$baiduid?lm=0";
$body = fcontents($url);
preg_match_all("|<td width=\"10%\" nowrap align=\"center\" class=\"nl\">.*时间</td>(.*)<div id=\"pg\">|isU", $body, $wentiquyu);
preg_match_all("|<span class=\"f14\"><a href=\"(.*)\" .* target=\"_blank\" class=\"title\">(.*)</a>.*<td align=\"center\">(.*)</td>|isU", $wentiquyu[1][0], $wentiliebiao);foreach ($wentiliebiao[2] as $key => $value) {
$title = $value; $row3 = $dsql->getone("select * from `#@__ask` where title like '%$title%'");
if (!$row3) {
$arcbody = fcontents('http://zhidao.baidu.com' . $wentiliebiao[1][$key]);
preg_match_all("|<pre id=\"question-content\">(.*)</pre>|isU", $arcbody, $wenti);
$content = $wenti[1][0];
preg_match_all("|<pre id=\"question-content\">(.*)</pre>|isU", $arcbody, $wenti);
preg_match_all("|<pre id=\".*-answer-content\".*>(.*)</pre>|isU", $arcbody, $daan);
$bestdaan = $xiangguandaan2 = "";
foreach ($daan[1] as $key => $values) {
$bestdaan .= $values;
} $daan2 = addslashes($bestdaan);
$content = addslashes($content);
if ($daan2 != "") {
$timestamp = time();
$expiredtime = $timestamp +86400 * $cfg_ask_expiredtime; $dsql->ExecuteNoneQuery("insert into `#@__ask`(tid, tidname, tid2, tid2name, uid, anonymous,
title, reward, dateline, expiredtime, ip ,content, extra)
values('$tid', '$tidname', '$tid2', '$tid2name', 1, 1, '$title', 0,
'$timestamp', '$expiredtime', '$userip', '$content', '')"); $aid = $dsql->GetLastID(); $dsql->ExecuteNoneQuery("UPDATE `#@__asktype` SET asknum=asknum+1 WHERE id='$tid'"); if ($tid2 > 0) {
$dsql->ExecuteNoneQuery("UPDATE `#@__asktype` SET asknum=asknum+1 WHERE id='$tid2'");
}
$dsql->ExecuteNoneQuery("INSERT INTO `#@__askanswer` ( `askid`, `ifanswer`, `tid`, `tid2`, `uid`, `username`, `anonymous`, `goodrate`, `badrate`, `userip`, `dateline`, `brief`, `content`, `ifcheck`) VALUES('$aid', 1, '$tid', '$tid2', 8, '37xy.com', 0, 0, 0, '$userip', '$timestamp', '', '$daan2', 1);"); $zid = $dsql->GetLastID();
$dsql->ExecuteNoneQuery("UPDATE `#@__ask` SET bestanswer=$zid,replies =replies+1   WHERE id='$aid'");
break;
}
}
}这个是PHP采集百度知道并写入dedecms的程序,但是一次只能采集一条
我想一次采集很多条,比如两条,三条 
这个列表都获取到了
但是循环在哪儿写 我不知道了 
请教高手一下

解决方案 »

  1.   

    楼主可以把你已经写好的代码封到一个函数里
    然后通过遍历ID列表的方式将需要处理的多个ID依次送入函数进行处理
    $idlist = array(1001, 1002, 1003, 1004, 1005, 006);    //百度ID列表foreach($idlist as $value){
        getandsave($value);
    }function getandsave($baiduid){
        //此处存放你的代码注意参数要对接上
    }以上是我写的一个简单例子,希望对楼主有帮助。
      

  2.   


    我再弱弱的问一下
    我想循环三次 怎么写呀
    我对PHP不熟悉,,, 
      

  3.   

    $count = 0;
    foreach ($wentiliebiao[2] as $key => $value) {
    $count++;if($count > 2) break;
    }