我正在使用 ScraperWiki 构建一个简单的屏幕抓取工具,从在线商店获取链接。商店有多个页面,所以我想从第一页获取所有链接,在寻呼机中找到“下一步”按钮,转到该 url,从那里找到所有链接,转到下一页,依此类推等等。
这就是我所在的地方。ScraperWiki 使用简单的 HTML DOM 和 CSS 选择器:
<?php
require 'scraperwiki/simple_html_dom.php';
function nextPage(){
$next = $html->find("li.pager-next a");
$nextUrl = 'http://www.domain.com';
$nextUrl .= $next->href . "\n";
getLinks($nextUrl);
}
function getLinks($url){ // gets links from product list page
$html_content = scraperwiki::scrape($url);
$html = str_get_html($html_content);
$x = 0;
foreach ($html->find("div.views-row a.imagecache-product_list") as $el) {
$url = $el->href . "\n";
$allLinks[$x] = 'http://www.domain.com';
$allLinks[$x] .= $url;
$x++;
}
nextPage();
}
getLinks("http://www.domain.com/foo/bar");
print_r($allLinks);
?>
该getLinks()
函数在不在函数中时工作正常,但是当我将它们放入函数时出现“未声明的变量”错误。我的问题是:
在 PHP 中,我可以像在 Javascript 中那样声明要在整个脚本中使用的空变量/数组吗?我在 Stack 上阅读了一些答案,这似乎暗示不需要声明,这似乎很奇怪。