cURL正在从Pirate Bay检索编码的HTML

时间:2014-05-07 14:23:07

标签: php curl

我正在创建一个正在抓取网站 www.piratebay.se 的脚本。两三天前脚本工作正常,但现在我遇到了问题。

这是我的代码:

$URL = 'http://thepiratebay.se';
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_COOKIE, "language=pt_BR; c[thepiratebay.se][/][language]=pt_BR");

$fonte = curl_exec ($ch);

curl_close ($ch);
echo $fonte;

此代码的响应不是干净的HTML,而是看起来像这样:

[ s8N&GT; k9-ىMI7 $ $8.v͕hyGSg:ӷ→5 < /em> �ʱ�aor& .v) )d w 8w l c u“”1 F *G 2$ 6 C } z(bw 4Ƒz6 S t4 K x 6u ~ T ACJb T^3 USPI:Mf n ' 4 XE QQ&amp; c5 `'β TY]D Q nBfS }a % R) Zn ̙ 8IB a L

我已经尝试在.htaccess,PHP和cURL上使用用户代理,但没有成功。

1 个答案:

答案 0 :(得分:10)

添加:

curl_setopt($ch, CURLOPT_ENCODING , "gzip");

在我的本地环境中测试,可以正常使用。