Php 刮网站动态内容-服务器端
我花了几个小时的研究来寻找解决方案,但我无法解决这个问题。我有一个ASO服务网站(比如sensortower),在那里我需要按关键字检查android应用程序排名。所以我需要一个脚本来导航到Play Store,并在搜索列表结果中找到我们客户应用程序的位置 我可以在前20个结果(file_get_contents)中完美地抓取,但是当你向下滚动到底部(动态加载的内容)时,通常会有250个结果。我尝试过使用phantomjs,curl,但可能我需要其他东西来解决这个问题 以下是适用于~20结果的代码:Php 刮网站动态内容-服务器端,php,ajax,Php,Ajax,我花了几个小时的研究来寻找解决方案,但我无法解决这个问题。我有一个ASO服务网站(比如sensortower),在那里我需要按关键字检查android应用程序排名。所以我需要一个脚本来导航到Play Store,并在搜索列表结果中找到我们客户应用程序的位置 我可以在前20个结果(file_get_contents)中完美地抓取,但是当你向下滚动到底部(动态加载的内容)时,通常会有250个结果。我尝试过使用phantomjs,curl,但可能我需要其他东西来解决这个问题 以下是适用于~20结果的代
$html = file_get_contents('https://play.google.com/store/search?q=war+games&c=apps');
preg_match_all("/data-docid=\"([^\"]*)\"/i", $html, $data);
$list = array_keys(array_flip($data[1]));
$packageNameToSearchFor = 'com.lighting.commander';
if (in_array($packageNameToSearchFor, $list)) {
$order = array_search($packageNameToSearchFor, $list)+1;
echo 'Position: '.$order;
} else {
echo 'Not found!';
}
非常感谢您的帮助和提示。如果页面通过AJAX加载内容,您能否在浏览器中捕获该AJAX请求并在代码中复制该请求?“那就把数据而不是页面刮去吧。”大卫,谢谢你的回复。不幸的是,AJAX令牌受到保护。@David Yep他们的AJAX请求确实有些奇怪。显然是为了让这种“数据检索”更难一些。也许这个Play Store scraper的实现可以帮助@David,我稍后会看一看。你的答案是目前为止最好的。谢谢