我正在尝试进入下一页,为此写了while(true)
循环,但工作不正常。给我没有错误或什么都没有。
这是网站链接:https://suumo.jp/ms/shinchiku/osaka/sa_osaka/pnz11.html我正在尝试将+1添加到分页中
$startID = 1;
while(true) {
@$url = "https://suumo.jp/ms/shinchiku/osaka/sa_osaka/pnz1".$startID.".html";
$html = @file_get_contents($url);
if($http_response_header[0] == 'HTTP/1.1 200 OK') {
libxml_use_internal_errors(true);
$parser = new \DOMDocument();
$parser->loadHTML($html);
代码的结尾。
$a = $startID+1;
} else {
$this->error("Next page is not found!");
}
顺便说一下,我毫无问题地抓取第一页。但这不是下一页。知道为什么会这样吗?
答案 0 :(得分:1)
您没有增加$startID
的{{1}}。因此,循环$a=$startID+1
的每次迭代都等于1。要解决该问题,您需要使用以下任一方法将其添加到自身中:
$startID
并更改此内容:
$startID += 1;
//or
++$startID;
//or (if you really need $a)
$a = $startID += 1;
我应该提到} else {
$this->error("Next page is not found!");
break; //exit the loop
}
与for(;;)
大致相同,因此:
while(true)
大致等同于所有这些:
for($startID=1;;++$startID){ ... }
除了我的看法更漂亮。我觉得很多程序员都忽略了PHP中的$startID = 1;
while(true){
++$startID;
}
,这些参数实际上也是可选的。
享受。