亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

高蒙2017/02/0613:491.0w瀏覽0評論

優(yōu)采云 發(fā)布時(shí)間: 2021-08-27 04:04

  高蒙2017/02/0613:491.0w瀏覽0評論

  首頁(yè) ?PHP 筆記? 如何使用 php采集微信公號文章方法

  如何使用php采集微信公號文章

  高萌 2017/02/06 13:491.0w 瀏覽 0 條評論 PHP

  最近有采集微信公號文章的需求,所以研究了一下。我發(fā)現在刷新搜狗微信公眾號文章列表的時(shí)候,有一個(gè)很惡心的地方就是搜狗會(huì )直接屏蔽你的ip并輸入驗證碼。這一步暫時(shí)不知道怎么破解。我們只是看php采集微信公號文章內容的方法。至于列表地址的獲取,我們后面再研究。在寫(xiě)之前,我搜索了三個(gè)用php編寫(xiě)的爬蟲(chóng):phpQuery、phpspider和QueryList(phpQuery的改進(jìn)版)??赡懿恢惯@些,這就是我發(fā)現的。先記錄,后研究。下面是我寫(xiě)的一個(gè)基本的微信公眾號php采集類(lèi),是的

  最近有采集微信官方號文章的需求,所以研究了一下。我發(fā)現在刷新搜狗微信公眾號文章列表的時(shí)候,有一個(gè)很惡心的地方就是搜狗會(huì )直接屏蔽你的ip并輸入驗證碼。這一步暫時(shí)不知道怎么破解。我們只是看php采集微信公號文章內容的方法。至于list地址的獲取,我們以后再研究。

  在寫(xiě)之前,我搜索了三個(gè)用php編寫(xiě)的爬蟲(chóng):phpQuery、phpspider和QueryList(phpQuery的改進(jìn)版本)??赡懿恢惯@些,這就是我發(fā)現的。先記錄,后研究。

  以下是我寫(xiě)的一個(gè)基本的微信公眾號php采集類(lèi),有待進(jìn)一步完善。

  /**

?*?Created?by?PhpStorm.

?*?User:?Administrator

?*?Date:?2017/2/6

?*?Time:?10:54

?*?author:?gm

?*?微信公眾號文章采集類(lèi)

?*/

class?DownWxArticle?{

private???$mpwxurl?=?'http://mp.weixin.qq.com';

private???$wxgzherr=?'公眾號二維碼下載失敗=>';

private???$wximgerr=?'圖片下載失敗=>';

private???$direrr??=?'文件夾創(chuàng )建失??!';

private???$fileerr?=?'資源不存在!';

private???$dirurl??=?'';

????/*?抓取微信公眾號文章

?*?$qcode????boolean?公眾號二維碼?false=>不下載?true=>下載

?*?return

?*?$content??string??內容

?*?$tile?????string??標題

?*?$time?????int?????時(shí)間戳

?*?$wxggh????string??微信公眾號

?*?$wxh??????string??微信號

?*?$qcode????string??公眾號二維碼

?*?$tag??????string??標簽?原創(chuàng )

?*/

????function?get_file_article($url,$dir='',$qcode=false)

????{

$this->dirurl?=?$dir?:'/Uploads/'.date('Ymd',time());

????????if(!$this->put_dir($this->dirurl)){

exit(json_encode(array('msg'=>$this->direrr,'code'=>500)));

}

????????$file?=?file_get_contents($url);

????????if(!$file){

$this->put_error_log($this->dirurl,$this->fileerr);

????????????exit(json_encode(array('msg'=>$this->fileerr,'code'=>500)));

????????}

????????//?內容主體

????????preg_match('/[\s\S]*?/',$file,$content);

????????//?標題

????????preg_match('/(.*?)/',$file,$title);

????????$title?=?$title?$title[1]:'';

????????//?時(shí)間

????????preg_match('/(.*?)/',$file,$time);

????????$time?=?$time?strtotime($time[1]):'';

????????//?公眾號

????????preg_match('/(.*?)/',$file,$wxgzh);

????????$wxgzh?=?$wxgzh?$wxgzh[1]:'';

????????//?微信號

????????preg_match('/([\s\S]*?)/',$file,$wxh);

????????$wxh???=?$wxh?$wxh[1]:'';

????????//?公眾號二維碼

????????if($qcode){

????????????preg_match('/window.sg_qr_code="(.*?)";/',$file,$qcode);

????????????$qcodeurl?=?str_replace('\x26amp;','&',$this->mpwxurl.$qcode[1]);

????????????$qcode?=?$this->put_file_img($this->dirurl,$qcodeurl);

????????????if(!$qcode){

????????????????$this->put_error_log($this->dirurl,$this->wxgzherr.$qcodeurl);

????????????}

????????}

????????//?獲取標簽

????????preg_match('/(.*?)/',$file,$tag);

????????$tag?=?$tag?$tag[1]:'';

????????//?圖片

????????preg_match_all('//',$content[0],$images);

????????//?儲存原地址和下載后地址

????????$old?=?array();

????????$new?=?array();

????????//?去除重復圖片地址

????????$images?=?array_unique($images[1]);

????????if($images){

????????????foreach($images?as?$v){

????????????????$filename?=?$this->put_file_img($this->dirurl,$v);

????????????????if($filename){

????????????????????//?圖片保存成功?替換地址

????????????????????$old[]?=?$v;

????????????????????$new[]?=?$filename;

????????????????}else{

????????????????????//?失敗記錄日志

????????????????????$this->put_error_log($this->dirurl,$this->wximgerr.$v);

????????????????}

????????????}

????????????$old[]?=?'data-src';

????????????$new[]?=?'src';

????????????$content?=?str_replace($old,$new,$content[0]);

????????}

???????//?替換音頻

???????$content?=?str_replace("preview.html","player.html",$content);?

???????//?獲取閱讀點(diǎn)贊評論等信息

???????$comment?=?$this->get_comment_article($url);

$data?=?array('content'=>$content,'title'=>$title,'time'=>$time,'wxgzh'=>$wxgzh,'wxh'=>$wxh,'qcode'=>$qcode?:'','tag'=>$tag?:'','comment'=>$comment);

????????return?json_encode(array('data'=>$data,'code'=>200,'msg'=>'ok'));

????}

????/*?抓取保存圖片函數

?????*?return

?????*?$filename??string??圖片地址

?????*/

????function?put_file_img($dir='',$image='')

????{

????????//?判斷圖片的保存類(lèi)型?截取后四位地址

????????$exts?=?array('jpeg','png','jpg');

????????$filename?=?$dir.'/'.uniqid().time().rand(10000,99999);

????????$ext?=?substr($image,-5);

????????$ext?=?explode('=',$ext);

????????if(in_array($ext[1],$exts)?!==?false){

????????????$filename?.=?'.'.$ext[1];

????????}else{

????????????$filename?.=?'.gif';

????????}

????????$souce?=?file_get_contents($image);

????????if(file_put_contents($filename,$souce)){

????????????return?$filename;

????????}else{

????????????return?false;

????????}

????}

????/*?獲取微信公眾號文章的【點(diǎn)贊】【閱讀】【評論】

?????*?方法:將地址中的部分參數替換即可。

?????*?????1、s??????替換為?mp/getcomment?

?????*?????2、最后=??替換為?%3D

?????*?return

?????*?read_num??閱讀數

?????*?like_num??點(diǎn)贊數

?????*?comment???評論詳情

?????*/

????function?get_comment_article($url='')

????{

????????$url?=?substr($url,0,-1);

????????$url?=?str_replace('/s','/mp/getcomment',$url).'%3D';

????????return?file_get_contents($url);

????}

????/*?錯誤日志記錄

?????*?$dir??string??文件路徑

?????*?$data?string??寫(xiě)入內容

?????*/

????function?put_error_log($dir,$data)

????{

????????file_put_contents($dir.'/error.log',date('Y-m-d?H:i:s',time()).$data.PHP_EOL,FILE_APPEND);

????}

????/*?創(chuàng )建文件夾

?????*?$dir?string?文件夾路徑

?????*/

????function?put_dir($dir=''){

$bool?=?true;

????????if(!is_dir($dir)){

????????????if(!mkdir($dir,777,TRUE)){

$bool?=?false;

????????????????$this->put_error_log($dir,$this->direrr.$dir);

????????????}

????????}

return?$bool;

????}

}

  使用方法:

  $url?=?'';

$article?=?new?DownWxArticle();

$article->get_file_article($url,'',true);

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久