PHP curl采集防盗链网站乱码问题求助?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

PHP curl采集防盗链网站乱码问题求助?报错

爱吃鱼的程序员 2020-06-14 16:21:31 31


在采集一个视频资讯网站时发现其用了防盗链和爬虫、禁用cookies会报错,完全模拟采集后全是乱码。

用fillder抓包设置no compression 之后就可以看到正常的HTML代码了,不知道这是社么原理,如何解决?

点击no compression后能正常显示HTML




<?php
header('content-type:text/html;charset=utf8');
set_time_limit(0);
	$curl = curl_init('http://www.jijizy点com/vod/?24229.html');
		$header = array();
		$header[] = 'Host: www.jijizy.com';
		$header[] = 'Referer: http://www.jijizy点com/vodlist/?5.html';
		$header[] = 'Accept-Encoding: gzip';
		$header[] = 'Accept-Language: zh-CN';
		$header[] = 'Cookie: ASPSESSIONIDCQSCBQTQ=KENHHCCBNJIHOENLHOPPDDEP; visid_incap_427008=QIp7l1y1TDGlqfVwnEOzoDSjQ1UAAAAAQUIPAAAAAAAXvgoGtlHuuAruMaA4ffZ2; incap_ses_260_427008=a9roNtU3BnuYxY1nSbWbAzSjQ1UAAAAAX0bJTMtBKjPzLOpEVxCP4w==';
		$header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,UC/145,plugin/1,alipay/un';
		$header[] = 'Connection: keep-alive';
		$header[] = 'X-UCBrowser-UA: dv(HUAWEI G610-T00);pr(UCBrowser/10.4.0.558);ov(Android 4.2.1);ss(360*640);pi(540*960);bt(UC);pm(1);bv(1);nm(0);im(0);sr(0);nt(2);';
		curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        // 不输出header头信息
        curl_setopt($curl, CURLOPT_HEADER, 0);
        // 伪装浏览器
        //curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
        // 保存到字符串而不是输出
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $rs = curl_exec($curl);
        curl_close($curl);



XML Web App开发 数据采集 数据建模 PHP Android开发 数据格式 iOS开发 Windows
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-14 16:21:49

    cookie不应该提前设置.应该是去第一次抓取页面的时候保存COOKIE不是这个的问题gzip压缩了,并不是乱码的问题回复<aclass='referer'target='_blank'>@wsy5344:请求header中不要加:Accept-Encoding即可。这个怎么解决压缩后的数据,设置好header头就可以解决。<atarget="_blank"rel="nofollow">http://blog.ppsql.net/index.php?keyword=采集

    把$header[]='Accept-Encoding:gzip';去掉


    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题