Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 刮网站动态内容-服务器端_Php_Ajax - Fatal编程技术网

Php 刮网站动态内容-服务器端

Php 刮网站动态内容-服务器端,php,ajax,Php,Ajax,我花了几个小时的研究来寻找解决方案,但我无法解决这个问题。我有一个ASO服务网站(比如sensortower),在那里我需要按关键字检查android应用程序排名。所以我需要一个脚本来导航到Play Store,并在搜索列表结果中找到我们客户应用程序的位置 我可以在前20个结果(file_get_contents)中完美地抓取,但是当你向下滚动到底部(动态加载的内容)时,通常会有250个结果。我尝试过使用phantomjs,curl,但可能我需要其他东西来解决这个问题 以下是适用于~20结果的代

我花了几个小时的研究来寻找解决方案,但我无法解决这个问题。我有一个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,我稍后会看一看。你的答案是目前为止最好的。谢谢