我想同时从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。
请大家帮帮我;感谢。
答案 0 :(得分:0)
你的代码似乎是正确的,除了一个小错误,如下:
在 for Loop 中,您使用相同的变量 $ i 作为循环迭代变量,
你的第二个for循环,更改$ i的值并使用此值 通过你的第一次循环。
我建议你至少改变第二个for循环迭代变量名。例如在第二个for循环中用 $ j 替换 $ i 。