使用simpleHTMLDOM增加抓取数据的响应时间

时间:2014-04-28 05:33:58

标签: php ajax parsing dom web-scraping

所以基本上我使用42matter的谷歌市场API来检索我的网站的应用程序信息,但是在我发现免费版本只允许500请求/天并且仅用于非商业用途时我必须开发自己的API。像任何开发人员一样,我做了一些R& D,发现了关于抓取和simpleHTML DOM解析器,我使用它并成功地完成了我的要求。

但是现在,我遇到了一个重大问题,42matter的api非常快,我打电话给api,并在我的DOM上快速获取信息(2秒内),但我的api很慢,它在8处理相同的请求或者10秒钟在页面上看起来很慢并且没有吸引力。

我试图删除开销,只找到我需要的部分,但仍然耗费了大量时间

代码如下:

include('../common/simple_html_dom.php');

$appPackageName = $_REQUEST['appPackageName'];

header('Content-Type: application/json');

$html = file_get_html('https://play.google.com/store/apps/details?id='.$appPackageName.'');

foreach($html->find('div.id-app-orig-desc') as $e){

    $description = $e->innertext;
}

$appInfo['description'] = $description;

echo json_encode($appInfo);

如果有人知道,请尽快告诉我

1 个答案:

答案 0 :(得分:1)

通用HTML-Parser必须处理完整的html代码。我发现2秒的响应时间并不快。如果您只是从给定的html-doc中寻找信息的微小提取,那么只需使用旧的str_pos和substr。这需要你在read html中找到一些独特的标记,然后在php中实现一个进程循环。实际上,有时静态偏移或2到3级标记递归可以很好地完成工作。