PHP新手关于采集的问题 现在在一个页面上进行for($u=1;$u<40;$u++){ 这样子去循环采集 如果采集非常慢 循环次数特别多 那么会造成超时现象吗?一般采集是个什么思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 肯定会超时的,采集的时候分阶段采集吧,然后set_time_out()函数把服务器响应时间设置的长些,以保证信息能有足够的时间采集完 像你这种情况应该使用多线程采集 ,给你个多线程采集的functionfunction newfuc($doctorz) { $mh = curl_multi_init(); foreach ($doctorz as $j => $uri) { $conn[$j] = curl_init($uri); curl_setopt($conn[$j], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"); curl_setopt($conn[$j], CURLOPT_HEADER ,0); curl_setopt($conn[$j], CURLOPT_CONNECTTIMEOUT,60); curl_setopt($conn[$j],CURLOPT_RETURNTRANSFER,true); // 设置不将爬取代码写到浏览器,而是转化为字符串curl_multi_add_handle ($mh,$conn[$j]); } do { curl_multi_exec($mh,$active); } while ($active);foreach ($doctorz as $j => $uri) { $data[$j]= curl_multi_getcontent($conn[$j]); // 获得爬取的代码字符串 //echo $data[$j];//注意各个数据源源码的编码必须一致}return $data;}先把要采集的网址装入数组,然后再放到函数里 好吧,我給你一个简单的不会超时的思路吧假如你的采集工作都是在a.php里完成的,那么a.php的代码条例应该如下:1.$id=獲取傳遞過來的id值,如果獲取不到,則id值為02.从数据库里按照id正序方式取得一條id大於$id的網址数据出來采集3.实施采集工作4.采集完成之后把采集到的内容存入数据库.5.让$id的值加16.延时更新自身页面,并传递参数,可以用下边两种方法任選其一window.setTimeout(function(){location.href='a.php?id=<?PHP echo $id;?>'},1000);//只延迟1秒,不循环<meta HTTP-EQUIV=REFRESH CONTENT='60; URL=a.php?id=<?PHP echo $id;?>'>这样的思路写出来的采集,不管你要采集多少条数据,绝对永不超时. 关于xspace的问题,急~~~! 请各位看看这段php代码中的javascript中的$是什么意思 WordPress使用过程中遇到一个蛋疼问题 做加为好友,给好友发信息思路 难道要换CMS??????? 关于cakephp的一点指向问题 有对dede了解的吗? PHP进阶求助帖,请高手开导下 zencart seo.url.php 改一个地方 求 php_memcache.dll 适合php5.3.0 版本的 .急用 在网上找了好久没找都没找到 PHP中一个非常奇怪的问题 IE9打不开php页面,大神请帮忙
function newfuc($doctorz)
{
$mh = curl_multi_init();
foreach ($doctorz as $j => $uri) {
$conn[$j] = curl_init($uri);
curl_setopt($conn[$j], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$j], CURLOPT_HEADER ,0);
curl_setopt($conn[$j], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$j],CURLOPT_RETURNTRANSFER,true); // 设置不将爬取代码写到浏览器,而是转化为字符串
curl_multi_add_handle ($mh,$conn[$j]);
}
do {
curl_multi_exec($mh,$active);
} while ($active);foreach ($doctorz as $j => $uri) {
$data[$j]= curl_multi_getcontent($conn[$j]); // 获得爬取的代码字符串
//echo $data[$j];
//注意各个数据源源码的编码必须一致
}
return $data;
}
先把要采集的网址装入数组,然后再放到函数里
2.从数据库里按照id正序方式取得一條id大於$id的網址数据出來采集
3.实施采集工作
4.采集完成之后把采集到的内容存入数据库.
5.让$id的值加1
6.延时更新自身页面,并传递参数,可以用下边两种方法任選其一
window.setTimeout(function(){location.href='a.php?id=<?PHP echo $id;?>'},1000);//只延迟1秒,不循环
<meta HTTP-EQUIV=REFRESH CONTENT='60; URL=a.php?id=<?PHP echo $id;?>'>这样的思路写出来的采集,不管你要采集多少条数据,绝对永不超时.