嗨,我有一个艰难的时间来循环我的卷曲函数和自动化的工作。
$scrape_url是一个从页面抓取链接的函数。scrape_nextpage是一个获取“下一个”页面的url的函数,在这里我将再次使用$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 (某种程度上遍历分页)
到目前为止,我只得到了前两个页面,我需要获取其他页面
Update : scrape_nextpage()是一个curl函数,它获取下一个页面的url (例如:
scrape_nextpage()抓取网址:"website.com/next30post.html";
因此,在scrape_url( $url )中使用的新$url变成了"website.com/next30post.html“。
然后,我使用scrape_nextpage()获取相同的页面,以获得"website.com/next60post.html";等等。
谢谢你的帮忙
发布于 2013-03-15 23:46:54
我想你要找的东西是这样的:
$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()在没有urls需要检查时返回FALSE或空字符串-这将中断while循环。
更新:
你的函数命名非常模糊。完全不清楚它们是做什么的。你想要清楚的名字。
例如,您需要一个函数get_content($url);,该函数获取某个页面(例如,http://website.com)的url并返回该网页的超文本标记语言。您需要的第二个函数是函数grab_links($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
}现在,这一点很清楚,可以很容易地进行调试。
https://stackoverflow.com/questions/15421167
复制相似问题