在废弃网站时延迟响应几秒钟

时间:2017-11-05 00:54:49

标签: php web-scraping

我正在开发一个php报废服务器,所以我有网站列表循环,然后返回每个页面的内容以获取我想要的数据。

有些网站没有完全退回的问题,因为我看到一些数据在页面完全加载后出现

我尝试了这两种方法,但我无法获得整页

第一种方法:

$opts = array('http' =>
    array(
        'method'  => 'GET',
        'timeout' => 10 
    ) );

$context  = stream_context_create($opts); 
$html = file_get_contents('some url',false,$context);  
echo $html;

第二种方法

$html = implode('',file('some url')); 
echo $html;

我只想在页面加载后1或2秒后返回页面内容。

例如,使用此url我无法获得搜索结果

  

:Résultats
   新闻图片Vidéos标签Filtre par日期
   PrécédenteSuivante

1 个答案:

答案 0 :(得分:0)

事情并非像他们看起来那样。 实际上你要打的网址是 https://api.swiftype.com/api/v1/public/engines/search.json因为加载的网页会在此网址上发出json请求。 在那个网址中你必须发布以下json

$search = array("engine_key"=>"naxCjQ58frTkB_diETvu","page"=>1,"q"=>"kardas","per_page"=>12,"sort_direction"=>"","filters"=>array("page"=>array("category"=>"News")),"facets"=>array("page"=>array("0"=>"tag")));

快速指南:

  1. 在"页面" property键入一个值,表示您想要获取的页码,
  2. on" q"属性类型您要搜索的术语
  3. " per_page" property是你将获得的条目,尝试一些 值,12是默认值,
  4. 其余的你必须自己找到它们。
  5. 一个有效的代码示例

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch,CURLOPT_URL,"https://api.swiftype.com/api/v1/public/engines/search.json");
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($search));
    curl_setopt($ch,CURLOPT_POST, true);
    curl_setopt($ch,CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8'));
    curl_setopt($ch,CURLOPT_HEADER, 0);
    
    $data = curl_exec($ch);
    curl_close($ch);
    

    并检查结果

    print_r(json_decode($data));
    

    这件事很美,就像他们给你一个API板块......