我正在从列出一些产品的网站上抓取,我已将产品页面网址保存在数据库中并循环遍历表格以获取网址并使用简单的html dom解析器进行抓取我使用以下代码。< / p>
<?php
error_reporting(E_ALL);
ignore_user_abort(true);
require_once('lib/simple_html_dom.php');
set_time_limit(0);
ini_set('memory_limit', '1024M');
ini_set('max_input_time ', '99999');
$catid = $_REQUEST['catid']; //passing category id from url
//getting category product url's from DB.
$query = mysql_query("select * from cat_prod where catid='".$catid."' ") or die(mysql_error());
if($query){
while($arr = mysql_fetch_array($query)){
$html = file_get_html($arr['purl']);
if(is_object($html)){
$i=1;
foreach ( $html->find('h1') as $elem ){
if(is_object($elem) && isset($elem))
echo $i.' : '.$elem->plaintext.'<br/>';
if($i==2) exit;
$i++;
}
$html->clear();
unset($html);
}
}
}
?>
当我在一次迭代之后死了执行它很好但是不止一次它抛出连接中止错误。
答案 0 :(得分:0)
尝试在循环中进行睡眠。你可能正在用DOS攻击锤击网站。
此外,您的脚本还存在$catid