如何从具有分页的页面获取URL?

时间:2015-11-16 07:22:19

标签: php

我想同时从5页获取网址,所以我写这样的代码

<?php
  $getLinks = "http://realestate.com.kh/real-estate-for-sale-in/all/";
  for($i=1; $i<=5; $i++){
    $result = $getLinks.$i;
    $urls = file_get_contents($result);
    $dom = new DOMDocument();
    @$dom->loadHTML($urls);
    $xpath = new DOMXPath($dom);
    $hrefs = $xpath->evaluate("/html/body//div[contains(@class, 'featured') or contains(@class, 'premium')]//a");

    for($i=0; $i<$hrefs->length; $i++) {
        $href = $hrefs->item($i);
        $url = $href->getAttribute('href').PHP_EOL;
        echo $url."<br />";
    }
 }
?>

这里

$getLinks = "http://realestate.com.kh/real-estate-for-sale-in/all/";
  for($i=1; $i<=5; $i++){
    $result = $getLinks.$i;

将输出

http://realestate.com.kh/real-estate-for-sale-in/all/1
http://realestate.com.kh/real-estate-for-sale-in/all/2
http://realestate.com.kh/real-estate-for-sale-in/all/3
http://realestate.com.kh/real-estate-for-sale-in/all/4
http://realestate.com.kh/real-estate-for-sale-in/all/5

这5个网址中的每一个都有不同的20个网址。我想循环所有这些以获取所有网址。

所以,如果我循环上面的5个url,我将获得100个url。但是在我上面的代码中没有工作,我只能得到20个网址http://realestate.com.kh/real-estate-for-sale-in/all/1

请大家帮帮我;感谢。

1 个答案:

答案 0 :(得分:0)

你的代码似乎是正确的,除了一个小错误,如下:

for Loop 中,您使用相同的变量 $ i 作为循环迭代变量,

  

你的第二个for循环,更改$ i的值并使用此值   通过你的第一次循环。

我建议你至少改变第二个for循环迭代变量名。例如在第二个for循环中用 $ j 替换 $ i