需要帮助循环链接卷曲功能

时间:2013-03-14 22:10:32

标签: php loops curl foreach

嗨,我很难循环我的卷曲功能并自动完成工作。

$ scrape_url是一个从页面获取链接的函数。   scrape_nextpage是一个获取“下一页”网址的函数,我将再次使用$ scrape_url,依此类推 到目前为止,这是我的代码:

$url = "http://website.com";   

$results_page = scrape_url($url); 

 if ( $url !==scrape_nextpage($url) ) {

        $url = scrape_nextpage($url);

       $results_page = scrape_url($url);

我希望遍历页面中找到的每个$ url(通过分页的方式)

到目前为止我只获得了2个第一页,我需要获取其他页面

更新: scrape_nextpage()是一个抓取下一页网址的curl函数(例如:

scrape_nextpage()抓住网址:“website.com/next30post.html”;

所以在scrape_url($ url)中使用的新$ url变为“website.com/next30post.html”。

然后我用scrape_nextpage()获取同一页面以获取“website.com/next60post.html”;等等 。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找这样的东西:

$url = "http://website.com";  
$results_page = scrape_url($url);  

while ($url !== scrape_nextpage($url))
{
    $url = get_nextpage($url);
    if (!$url) {
        break;
    }
    $results_page = scrape_url($url);
    // do something with $results_page
}

确保get_nextpage()返回FALSE或空字符串,当没有更多的网址可以检查时 - 这将打破while循环。

<强>更新

您的功能命名非常模糊。目前还不清楚他们做了什么。你想要清楚的名字。

例如,您希望函数get_content($url);获取某个页面的URL(例如,http://website.com)并返回该网页的HTML。你需要的第二个函数是一个函数grab_links($html);,它将解析某些页面的HTML并返回它在那里找到的链接。然后代码将是:

$list_of_urls = array(
    "http://website.com"
    );
foreach ($list_of_urls as $url)
{
    $html = get_content($url);
    $links = grab_links($html);
    // do something with $links
}

现在这很清楚,可以轻松调试。