亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP寫微信公眾號文章頁采集方法講解

2020-03-22 17:26:17
字體:
來源:轉載
供稿:網友
給大家分析一下如何用PHP寫出采集微信公眾號文章的方法以及代碼詳細講解,需要的朋友學習一下。

通過搜狗搜索采集公眾號歷史消息有幾個問題:

1、有驗證碼;

2、歷史消息列表只有最近10條群發內容;

3、文章地址是有有效期的;

4、據說批量采集還要換ip;

通過我前面文章的方法就沒有這些問題,雖然采集系統搭建不如傳統采集器寫個規則去爬就可以了那么簡單。但是一次搭建好之后批量采集的效率還是可以的。而且采集的文章地址是永久有效的,并且可以采集到一個公眾號所有的歷史消息。
我們還是從一個公眾號文章的鏈接地址開始看:

1、從微信右上角菜單復制到的鏈接地址:

http://mp.weixin.qq.com/s/fF34bERZ0je_8RWEJjoZ5A

2、歷史消息列表中獲取到的地址:

http://mp.weixin.qq.com/s?__biz=MjM5NDAwMTA2MA== mid=2695729619 idx=1 sn=8be0b6bd0210cee0d492ebdf20f7371f chksm=83d74818b4a0c10ef286b33bb7deb73226125f866ddb5b2781166066a69afef3705eabdb3b85 scene=4#wechat_redirect

3、完整的真實地址:

http://mp.weixin.qq.com/s?__biz=MjM5NDAwMTA2MA== mid=2695729619 idx=1 sn=8be0b6bd0210cee0d492ebdf20f7371f chksm=83d74818b4a0c10ef286b33bb7deb73226125f866ddb5b2781166066a69afef3705eabdb3b85 scene=37 key=c81d77271180a0e6ce32be2d9dcaa2a7436aeba2c1d47a20d02194d1c944a8286a8eded93495eeadd05da412bbfaa638a379750aeaa4cf5c00e4d7851c5710d9b9736b80e3c72770a57a515c23ff2400 ascene=3 uin=MzUyOTIyNQ%3D%3D devicetype=iOS10.1.1 version=16050120 nettype=WIFI fontScale=100 pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4%3D wx_header=1

以上這3個地址是同一篇文章的地址,在不同位置獲取到就得到了完全不同的3個結果。

和歷史消息頁一樣,微信有一套自動補充參數的機制。第一個地址是復制鏈接得到的,看起來是一個偽裝的編碼。其實沒什么用我們不做考慮了。第二個地址是通過前面文章介紹的方法,從歷史消息的json文章列表中獲得到的鏈接地址,我們就是可以將這個地址保存到數據庫中。之后就可以通過這個地址從服務器獲取到文章內容。而第三個鏈接補充了參數之后,目的是為了讓文章頁面中的閱讀量js可以獲取到閱讀量點贊量的json結果而加上的參數。我們前面文章的方法中因為文章頁面被客戶端打開顯示了出來,因為有了這些參數,文章頁面中的js就去自動獲取閱讀量了,所以我們才能通過代理服務獲取到這篇文章的閱讀量。

這篇文章的內容就是以通過本專欄前面文章介紹的方法已經獲取到了大量微信文章的基礎上,詳細研究如何獲取到文章內容和其它一些有用的信息的方法。

(我的數據庫中保存的文章列表,一部分字段)

1、獲取文章源代碼:

通過php的函數file_get_content()就可以將文章源代碼讀取到變量中。微信文章的源代碼因為可以從瀏覽器中打開所以我就不在這里粘貼了,以免浪費頁面空間。

 ?//$content_url 變量的值為文章地址$html = file_get_contents($content_url);? 

2、源代碼中有用的信息:

1)原文內容:

原文內容是包含在一個 p id= js_content /p 標簽中的,通過php代碼獲?。?/p>

 ?preg_match_all( /id=/ js_content/ (.*) script/iUs ,$html,$content,PREG_PATTERN_ORDER);$content = p id= js_content .$content[1][0];? 

正則的開頭識別 p id= js_content ,結尾識別 script/iUs,匹配到之后前面再補充一個 p id= js_content ;我的正則匹配水平有限,只能寫成這樣的了。希望有高人能指點更好的正則匹配方法。

另外注意:這個匹配規則會可能在一段時間之后有變化。這篇文章會盡量保持更新。如果你根據我的文章制作了采集系統之后,當某一天失效了,別忘了回來再看看文章是否有更新。

2)內容處理:

通過上面的方法我們獲得了文章內容的html,但是你將文章內容顯示出來之后就會發現,圖片和視頻不能正常顯示。因為這個html還需要一些加工:

首先是圖片,微信文章中的 img 標簽中的src屬性全部都用了src屬性代替。只有在顯示的時候才會被替換過來。所以我們也有兩個方案,將源代碼直接替換過來,或者用js在顯示時候再替換。下面我先介紹直接替換html的方法:

 ?//$content變量的值是前面獲取到的文章內容html$content = str_replace( src , src ,$content);? 

然后是視頻,視頻的顯示不正常,經過長期測試后發現只要替換一個頁面地址就能解決,過程就不說了,直接說結果:

 ?//$content變量的值是前面獲取到的文章內容html$content = str_replace( preview.html , player.html ,$content);? 

通過這兩個替換之后,文章內容html中的圖片和視頻就都正常了。

3) 公眾號相關信息:

通過本專欄之前的文章,介紹了我們使用微信客戶端,任意打開一個公眾號的歷史消息頁之后。系統從數據庫中識別biz的值,發現數據庫中沒有記錄,就會插入一條新的紀錄。之后的采集隊列就會定期根據這個biz來獲取這個公眾號的歷史消息列表。

但是我們只獲得了這個公眾號的biz,公眾號的名稱,頭像這兩個重要信息還是沒有獲取到。主要原因是歷史消息頁面中沒有這兩個信息。但是我們可以從文章頁面中獲取到。

在微信文章頁面html的底部,有一些js的變量賦值的代碼,通過正則匹配之后我們就可以獲得這兩個公眾號的信息:

 ?//$html變量的值是前面獲取到的文章全部htmlpreg_match_all( /var nickname = / (.*?)/ /si ,$html,$m);$nickname = $m[1][0];//公眾號昵稱preg_match_all( /var round_head_img = / (.*?)/ /si ,$html,$m);$head_img = $m[1][0];//公眾號頭像? 

通過這兩個正則匹配,我們就能獲取到公眾號的頭像和昵稱,然后根據文章地址中的biz,可以保存到對應的微信號數據表中。

3、文章的保存和處理

前面的代碼已經將文章內容獲取到變量中了。如何保存其實每個人也許都有自己的想法。我這里介紹一下我的保存內容的方法:

將文章內容的html以數據庫id為文件名保存成html文件,以biz字段為目錄。

 ?$dir = ./ .$biz. / $filename = $dir.$id. .html if(!is_dir($dir)) { mkdir($cache_dir); chmod($cache_dir,0777);$file = fopen($filename, w fwrite($file, $content);fclose($file);? 

以上代碼是一個標準的php建立文件夾保存文件的代碼,大家可以根據自己的實際情況安排保存方法。

在這之后我們就可以在自己的服務器上得到一個html文件,內容就是公眾號的文章內容。我們可以從瀏覽器中打開看一下。這時你也許會發現圖片防盜鏈了!無法正常顯示!包括數據庫中保存的文章封面圖,公眾號的頭像都是防盜鏈的。

別急,這個問題很好解決,只需要將圖片也保存到自己的服務器,無非是將來會占用自己的服務器空間和帶寬。

圖片防盜鏈的原理是當圖片在網頁中顯示的時候,圖片服務器會檢測到引用這張圖片的服務器域名,當發現服務器域名不包含http://qq.com或http://qpic.cn的時候就會被替換成防盜鏈圖片。

但是如果檢測不到引用頁面的域名就會正常顯示,所以我們通過php的函數file_get_content()就可以將圖片的二進制代碼獲取過來,然后根據自己的想法起個文件名保存到自己的服務器上。在這里再介紹一個保存圖片的方法,我目前使用了騰訊云的“萬象優圖”,通過它們提供的api將圖片保存到云空間,這樣的好處是讀取圖片時直接在圖片的鏈接地址加上希望得到的圖片尺寸大小參數,就可以直接得到一張縮略圖。比存在自己的服務器方便得多。阿里云也應該有同樣的產品,好像名叫對象存儲。

另外,我采集公眾號內容的目的是制作成一個新聞app,在app中將html代碼顯示出來之后,因為app同樣沒有域名,防盜鏈服務器也同樣不會認為圖片被盜鏈了。這樣就可以直接顯示圖片出來。

以上就是我總結的公眾號文章內容的采集與存儲方法,希望能夠幫到你。

相關推薦:

如何采集微信公眾號歷史消息頁的詳解

PHP實現基數排序的方法講解

PHP基于反射機制實現自動依賴注入的方法講解

以上就是PHP寫微信公眾號文章頁采集方法講解的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女免费看| 欧美日韩在线视频一区二区| 97热精品视频官网| 国产精品jvid在线观看蜜臀| 欧美午夜精品伦理| 日韩av电影中文字幕| 午夜精品福利电影| 日韩国产精品亚洲а∨天堂免| 午夜精品视频在线| 91av在线播放| 亚洲综合大片69999| 久久精视频免费在线久久完整在线看| 欧美老女人bb| 亚洲精品电影久久久| 欧美中文字幕视频| 91精品国产综合久久香蕉的用户体验| 国产又爽又黄的激情精品视频| 欧美性xxxxx极品娇小| 国产免费一区视频观看免费| 亚洲精品美女久久久久| 国产精品第一区| 欧美精品一区二区免费| 久久精品一偷一偷国产| 欧美性猛交xxxx偷拍洗澡| 日韩一区二区av| 亚洲a一级视频| 亚洲二区在线播放视频| 91亚洲国产成人精品性色| 国产精品v片在线观看不卡| 欧美国产视频一区二区| 欧美自拍视频在线观看| 2019中文字幕在线观看| 精品国产欧美一区二区三区成人| 亚洲人精选亚洲人成在线| 97精品一区二区三区| 欧美成年人视频网站| 日韩高清电影好看的电视剧电影| 欧美午夜女人视频在线| 日韩高清av一区二区三区| 国产精品网站入口| 国产精品久久综合av爱欲tv| 午夜精品久久久久久久久久久久久| 一区二区国产精品视频| 欧美极品欧美精品欧美视频| 久久国产精品久久精品| 国产91对白在线播放| 国产专区精品视频| 在线日韩日本国产亚洲| 亚洲国产欧美一区二区三区同亚洲| 久久国产精品久久久久久久久久| 亚洲免费影视第一页| 在线成人一区二区| 国产精品自产拍在线观| 欧美性xxxx极品高清hd直播| 亚洲精品mp4| 久热精品在线视频| 中文字幕亚洲国产| 欧美国产日本高清在线| 午夜精品免费视频| 久久久视频在线| 亚洲一级黄色片| 91午夜在线播放| 日韩中文字幕在线视频| 亚洲女同性videos| 日韩中文字幕久久| 欧美在线日韩在线| 中文字幕久久精品| 日韩欧美在线免费观看| 日韩人体视频一二区| 中文.日本.精品| 亚洲精品女av网站| 黄色精品一区二区| 欧美成人免费在线视频| 国产精品精品久久久久久| 欧美一区二区大胆人体摄影专业网站| 88国产精品欧美一区二区三区| 欧美成人精品一区| 情事1991在线| 精品伊人久久97| 欧美日韩免费在线观看| 98精品国产自产在线观看| 亚洲国产91精品在线观看| 国产精品无码专区在线观看| 久久中文字幕在线| 亚洲第一男人av| 欧美在线视频网站| 中文字幕av一区二区三区谷原希美| 精品偷拍一区二区三区在线看| 欧美一级大胆视频| 日韩综合中文字幕| 欧美午夜宅男影院在线观看| 亚洲区免费影片| 亚洲网站在线播放| 91精品免费久久久久久久久| 国产精品一区二区三区久久久| 亚洲国产97在线精品一区| 国产精品∨欧美精品v日韩精品| 亚洲美女视频网站| 国产精品精品视频一区二区三区| 日韩欧美国产免费播放| 免费av在线一区| 欧美另类69精品久久久久9999| 久久香蕉国产线看观看网| www.99久久热国产日韩欧美.com| 成人看片人aa| 国产一区二中文字幕在线看| 精品在线欧美视频| 国产亚洲精品一区二555| 成人免费观看网址| 日韩午夜在线视频| 欧美午夜电影在线| 久久久www成人免费精品| 国产精品视频1区| 亚洲福利在线观看| 欧美xxxx做受欧美.88| 日韩中文字幕网址| 国产91免费看片| 久久视频在线视频| 在线播放国产一区中文字幕剧情欧美| 亚洲人成网站在线播| 久久天天躁狠狠躁夜夜躁2014| 992tv成人免费影院| 91精品久久久久久久久青青| 91精品国产亚洲| 国产精品视频yy9099| 91国产高清在线| 亚洲v日韩v综合v精品v| 欧美日韩中文在线| 伊人青青综合网站| 亚洲国产精久久久久久| 日韩av在线直播| 欧美在线精品免播放器视频| 国产精品劲爆视频| 97久久久免费福利网址| 久久精品久久久久久| 91精品综合久久久久久五月天| 亚洲aⅴ男人的天堂在线观看| 日韩欧美视频一区二区三区| 国产欧美婷婷中文| 欧美午夜电影在线| 亚洲欧美国产日韩中文字幕| 精品中文字幕在线观看| 九色91av视频| 国产日韩视频在线观看| 国产91色在线|免| 国产精品日韩在线| 亚洲福利视频在线| 精品国产一区二区三区久久久| 色综合久久88色综合天天看泰| 色在人av网站天堂精品| 欧美成人黄色小视频| 2018中文字幕一区二区三区| 日韩精品免费一线在线观看| 久久99精品国产99久久6尤物| 久久久久亚洲精品国产| 亚洲国产欧美久久| 国产在线999| 精品小视频在线| 国产成人久久精品| 97视频在线免费观看| 国内精品久久久久伊人av| 91夜夜揉人人捏人人添红杏| xvideos成人免费中文版| 久久久在线免费观看|