嗨,我很难循环我的卷曲功能并自动完成工作。
$ 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”;等等 。
感谢您的帮助
答案 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
}
现在这很清楚,可以轻松调试。