我无法使用true进行分页,但无法正常工作

时间:2018-10-15 06:42:31

标签: php laravel web-scraping domparser

我正在尝试进入下一页,为此写了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!");
        }

顺便说一下,我毫无问题地抓取第一页。但这不是下一页。知道为什么会这样吗?

1 个答案:

答案 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; } ,这些参数实际上也是可选的。

享受。