摘要:采集目標微信文章頁標題內容發布時間作者等信息。安裝微信采集代碼采集規則可以很輕松的就寫出采集代碼出來,來看看運行結果和預期一樣正確采集到了內容,但是內容亂碼了。
采集目標
微信文章頁標題、內容、發布時間、作者等信息。
采集示例URLhttps://mp.weixin.qq.com/s?src=11×tamp=1523173327&ver=803&signature=6PCxJ*3ojH2ZM8pm56Lquward0mQMwSkPnqCvYlrDkQmL2kAEjGcFJMj2lzvpHyuyT30lczb2Ld0npUWmp*2Gj7bPJY3SCWrpRKlXJA0p4eQWPpAzMPJVmxPcRV5TtLS&new=1采集內容區圖例 分析內容選擇器
利用瀏覽器開發者工具來分析待采集的區域選擇器,這里不做詳細講解,如有不明白請自行了解jQuery選擇器和CSS選擇器相關知識,如圖:
分析結果:
標題選擇器為:.rich_media_title
發布時間選擇器為: #post-date
作者選擇器為:#meta_content>.rich_media_meta:eq(2)
內容選擇器為:.rich_media_content
選擇器寫法并不是唯一的,只要能選擇到內容選擇器隨便怎么寫都可以。
代碼選擇器分析出來后代碼就很容易實現了。
安裝QueryListcomposer require jaeger/querylist微信采集代碼
[".rich_media_title","text"], "date" => ["#post-date","text"], "author" => ["#meta_content>.rich_media_meta:eq(2)","text"], "content" => [".rich_media_content","html"] ]; $data = QueryList::get($url)->rules($rules)->query()->getData(); print_r($data->all());
可以很輕松的就寫出采集代碼出來,來看看運行結果:
Array ( [0] => Array ( [title] => a??è′???????a?????????°???a???èμ·?????1???????·2è¢?????¤§?a???????è?°??¨?¤??a?èˉ′ [date] => 2018-04-08 [author] => ???èˉ-??? [content] =>
è?a??1?????????èμ·a??è′???????a????¥??¥????????????????°±?????¨??¨????????o????¤′??????
??-?????¤????????????????¨???????è§??¨?è?????è???¤§???è?????é??è???????????????μ???????????????§?????¥??±?¢????
...... )
和預期一樣正確采集到了內容,但是內容亂碼了。
解決亂碼解決亂碼的方法有很多,QueryList內置的解決方案是使用encoding()和removeHead()這個方法,但經過嘗試發現目前的場景都沒有效果,所以我使用了另一種方法來解決微信亂碼問題,修改后的代碼如下:
[".rich_media_title","text"], "date" => ["#post-date","text"], "author" => ["#meta_content>.rich_media_meta:eq(2)","text"], "content" => [".rich_media_content","html"] ]; $html = GHttp::get($url); // 直接匹配出body中的內容 preg_match("/]+>(.+)s+/s",$html,$arr); $html = $arr[0]; $data = QueryList::html($html)->rules($rules)->query()->getData(); print_r($data->all());
運行結果:
Array ( [0] => Array ( [title] => “貿易戰”戰火尚未燃起,特朗普已被各大媒體炮轟丨外媒說 [date] => 2018-04-08 [author] => 雙語君 [content] =>
自特朗普挑起“貿易戰”以來,一把利劍就懸在全球市場的頭上。
中美兩國公布的征稅商品規模越變越大,股市震蕩,世界經濟的不確定性與日俱增。
.... )
原文:http://study.querylist.cc/arc...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28557.html
QueryList 簡介 QueryList是一套簡潔、優雅、可擴展的PHP采集工具(爬蟲),基于phpQuery。 特性 擁有與jQuery完全相同的CSS3 DOM選擇器 擁有與jQuery完全相同的DOM操作API 擁有通用的列表采集方案 擁有強大的HTTP請求套件,輕松實現如:模擬登陸、偽造瀏覽器、HTTP代理等意復雜的網絡請求 擁有亂碼解決方案 擁有強大的內容過濾功能,可使用jQue...
摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用插件抓取動態創建的頁面內容。插件使用瀏覽器打開連接使用以采集今日頭條手機版為例,今日頭條手機版基于框架,內容是純動態渲染出來的。 QueryList使用jQuery的方式來做采集,擁有豐富的插件。 下面來演示QueryList使用PhantomJS插件抓取JS動態創建的頁面內容。 安裝 使用Composer安裝: 安裝QueryList...
摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用搜索引擎插件輕松實現站內搜索。 QueryList使用jQuery的方式來做采集,擁有豐富的插件。 下面來演示QueryList使用Baidu搜索引擎插件輕松實現站內搜索。 安裝 使用Composer安裝: 安裝QueryList composer require jaeger/querylist GitHub: https://git...
PHP 函數的 JavaScript 實現 module.exports = function array_sum (array) { // eslint-disable-line camelcase // discuss at: http://locutus.io/php/array_sum/ // original by: Kevin van Zonneveld (http://kv...
摘要:查找保存下載用搭建自己的緩存倉庫權限管理的好選擇基于封裝的后臺管理系統,支持手機和端訪問支付寶風格的驗證器后臺系統微信接口的部署腳本開發的博客系統百度推送自動記錄用戶行為擴展一個項目管理系統根據生成對應導航的狀態 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...
閱讀 1389·2021-10-11 10:58
閱讀 1471·2021-09-04 16:41
閱讀 670·2019-08-30 15:55
閱讀 799·2019-08-29 18:46
閱讀 3133·2019-08-29 14:05
閱讀 3525·2019-08-26 14:00
閱讀 2448·2019-08-26 13:53
閱讀 3164·2019-08-26 13:29