猿问

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

我想做的是使用随机关键字在亚马逊上进行搜索,然后我可能会抓取前 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 次销售,任何人都可以看到任何问题吗?我不知道还有什么要检查的,任何帮助表示赞赏。


慕仙森
浏览 402回答 1
1回答

呼唤远方

亚马逊正在返回以 gzip 编码的响应。您需要对其进行解码:$html = getHtml("https://www.amazon.co.uk/s?k=" . get_random_keyword());echo gzdecode($html);
随时随地看视频慕课网APP
我要回答