使用Curl抓取网站返回空白结果

时间:2019-09-17 17:37:16

标签: php

我想做的是使用随机关键字在Amazon上进行搜索,然后我会抓取大概前10个结果,当我print html结果却一无所获时出现的问题是只是空白,我的代码对我来说还可以,并且我过去使用过CURL,但是从来没有遇到过,我的代码:

<?php

include_once("classes/simple_html_dom.php");

function get_random_keyword() {
    $f_contents = file("keywords.txt"); 
    return $f_contents[rand(0, count($f_contents) - 1)];    
}

function getHtml($page) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $page);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
    $html = curl_exec($ch);
    print "html -> " . $html;
    curl_close($ch);    
    return $html;
}


$html = getHtml("https://www.amazon.co.uk/s?k=" . get_random_keyword());

?>

理想情况下,我本来希望使用API​​,但据我了解,您需要先获得3次销售,然后才能被授予访问权限,任何人都可以看到任何问题吗?我不确定还需要检查什么,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

Amazon返回以gzip编码的响应。您需要对其进行解码:

$html = getHtml("https://www.amazon.co.uk/s?k=" . get_random_keyword());
echo gzdecode($html);