菜鸡源码,专注精品下载!
当前位置:首页 > 建站教程 > 建站知识

使用PHP批量获取QQ空间相册链接

发布时间:2024-01-05  栏目:建站知识   浏览:   分类:php教程 QQ空间

要批量抓取QQ空间相册链接,可以使用PHP的cURL库和DOM解析器。以下是一个简单的示例代码: ```php <?php function get_qq_album_links($qq, $pwd) { $url = "https://user.qzone.qq.com/{$qq}/album"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110

在网上找了很久也没有找到一个有效的备份QQ空间照片工具,作为一个Phper,淦就完事了,所以顶着寒冷,搞了三个小时终于把QQ空间所有照片备份了。

采用QQ空间api,有效时间不确定,如果发现api生效,请自己抓取api。

php批量抓取QQ空间相册链接

手动验证了一下相册数与抓到的链接数,一个都不差,/宾果

<?phpclassQzoneImgDown{//调用方法//请登录https://h5.qzone.qq.com/获取你的cookie以及g_tk和uin//$g_tk='';//$res_uin='';//该uin为你的QQ号(常规情况下)//$cookie='';//$qzone=newQzoneImgDown($g_tk,$uin,$cookie);//echo$qzone->getList();//Ps:该类库仅用于获取自己QQ空间照片链接,至于QQ好友相册没有适配//获取的下载链接请使用下载工具进行下载(php不方便下载)publicfunction__construct($g_tk,$res_uin,$cookie){$this->g_tk=$g_tk;$this->res_uin=$res_uin;//相册列表接口$this->listApi='https://mobile.qzone.qq.com/list?g_tk='.$this->g_tk.'&format=json&list_type=album&action=0&res_uin='.$this->res_uin.'&count=99';//相册图片列表接口$this->imgApi='https://h5.qzone.qq.com/webapp/json/mqzone_photo/getPhotoList2?g_tk='.$this->g_tk.'&uin='.$this->res_uin.'&albumid=xxxxxxxxxxxxx&ps=0&pn=20&password=&password_cleartext=0&swidth=1080&sheight=1920';$this->cookie=$cookie;}/***获取图片列表*@AuthorYoungxj*@DateTime2019-12-01*@param[type]$url相册ajax数据*@return[type][description]*/privatefunctiongetImg($url){//echo$url;exit;$json=$this->curl_request($url,'','',$this->cookie);$arr=json_decode($json,1);if(isset($arr['data']['album']['name'])){$fileName=$arr['data']['album']['name'];$myfile=@fopen($fileName.'.txt','a+');if(!$myfile){exit('文件写入失败,请检查目录读写权限是否正常');}$photos=array_values($arr['data']['photos']);//echojson_encode($arr['data']['photos']);exit;foreach($photosas$key=>$value){foreach($photos[$key]as$keys=>$values){//var_dump($key);var_dump($keys);//var_dump($photos[$key][$keys]['1']['url']);echo$text=$photos[$key][$keys]['1']['url']."n";fwrite($myfile,$text);}}fclose($myfile);}}/***计算翻页*@AuthorYoungxj*@DateTime2019-12-01*@param[type]$url[description]*@return[type][description]*/privatefunctionret($url){$json=$this->curl_request($url,'','',$this->cookie);$arr=json_decode($json,1);//echojson_encode($arr);exit;if(isset($arr['data']['album']['name'])){$total_count=$arr['data']['total_count'];$page_count=ceil($total_count/20);//var_dump($total_count);exit;for($i=0;$i<=$page_count;$i++){//var_dump($i);$url=$this->url_set_value($url,'ps',$i*20);//var_dump($url);exit;$this->getImg($url);}//var_dump($page_count);exit;//exit;}else{exit('error');}}/***获取相册列表*@AuthorYoungxj*@DateTime2019-12-01*@return[type][description]*/publicfunctiongetList(){$json=$this->curl_request($this->listApi,'','',$this->cookie);$arr=json_decode($json,1);if(isset($arr['data']['vFeeds'])){$newArr=$arr['data']['vFeeds'];foreach($newArras$key=>$value){$albumid=$newArr[$key]['pic']['albumid'];$url=$this->url_set_value($this->imgApi,'albumid',$albumid);//echo$url."n";echo$this->ret($url);}}else{exit('error');}}/***curl模拟提交*@param[type]$url访问的URL*@paramstring$postpost数据(不填则为GET)*@paramstring$referer自定义来路*@paramstring$cookie提交的$cookies*@paraminteger$returnCookie是否返回$cookies*@paramstring$ua自定义UA*@return[type][description]*/privatefunctioncurl_request($url,$post='',$referer='',$cookie='',$returnCookie=0,$ua='Mozilla/5.0(WindowsNT6.1;WOW64;rv:43.0)Gecko/20100101Firefox/43.0'){$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_USERAGENT,$ua);curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);curl_setopt($curl,CURLOPT_AUTOREFERER,1);curl_setopt($curl,CURLOPT_TIMEOUT,60);curl_setopt($curl,CURLOPT_REFERER,$referer);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);$httpheader[]="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";$httpheader[]="Accept-Encoding:gzip,deflate";$httpheader[]="Accept-Language:zh-CN,zh;q=0.9";$httpheader[]="Connection:close";curl_setopt($curl,CURLOPT_HTTPHEADER,$httpheader);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);if($post){curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($post));}if($cookie){curl_setopt($curl,CURLOPT_COOKIE,$cookie);}curl_setopt($curl,CURLOPT_HEADER,$returnCookie);curl_setopt($curl,CURLOPT_TIMEOUT,10);curl_setopt($curl,CURLOPT_ENCODING,"gzip");curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$data=curl_exec($curl);if(curl_errno($curl)){returncurl_error($curl);}curl_close($curl);if($returnCookie){list($header,$body)=explode("rnrn",$data,2);preg_match_all("/Set-Cookie:([^;]*);/",$header,$matches);$info['cookie']=substr($matches[1][1],1);$info['content']=$body;return$info;}else{return$data;}}/***替换get参数*@AuthorYoungxj*@DateTime2019-12-01*@param[type]$url地址*@param[type]$keykey*@param[type]$valueval*@return[type][description]*/privatefunctionurl_set_value($url,$key,$value){$a=explode('?',$url);$url_f=$a[0];$query=$a[1];parse_str($query,$arr);$arr[$key]=$value;return$url_f.'?'.http_build_query($arr);}}

如何获取Cookie及uin就不再赘述了 该类库仅用于获取自己QQ空间照片链接,至于QQ好友相册没有适配 获取的下载链接请使用下载工具进行下载(php不方便下载)

相关文章

    无相关信息
评论
建站知识
建站知识
使用技巧
调试安装
运营推广