1. 程式人生 > >nodejs爬蟲抓取搜狗微信文章詳解

nodejs爬蟲抓取搜狗微信文章詳解

成果

展示地址

使用模組

思路

爬取的思路 : 從搜尋開始 -> 進入公眾號文章列表頁面 -> 再分別訪問每篇文章 ->同時ajax獲取點贊量,閱讀量等資訊. 因為公眾號文章列表和文章內容頁的url都是臨時連結,大概是2個小時過期,所以每次都需要從搜尋開始爬取.

程式碼說明一

app.js是主檔案,npm install 後 node app 就可以啟動爬蟲任務,測試是支付寶公眾號,爬取了最近5篇文章;
var ut = require('./common.js');
var async = require('async');
console.log('開始測試!!!')
var public_num = '支付寶';
//任務陣列
var task = [];
//根據public_num搜尋公眾號,最好是微訊號或者微信全名.
task.push(function (callback) {
  ut.search_wechat(public_num, callback)
});
//根據url獲取公眾號獲取最後10條圖文列表
task.push(function (url, callback) {
  ut.look_wechat_by_url(url, callback)
})
//根據圖文url獲取詳細資訊,釋出日期,作者,公眾號,閱讀量,點贊量等
task.push(function (article_titles, article_urls, article_pub_times, callback) {
  ut.get_info_by_url(article_titles, article_urls, article_pub_times, callback)
})
//執行任務
async.waterfall(task, function (err, result) {
  if (err) return console.log(err);
  console.log(result);
})

程式碼說明二

從app.js能看出呼叫了3個方法,分別是search_wechat, look_wechat_by_url, get_info_by_url common.js就是實現了這3個方法,和需要呼叫的其他方法.

爬蟲第一步

首先就是根據提供的微訊號.搜尋公眾號,獲取公眾號列表 --  common.js裡的 search_wechat 方法 得到公眾號的臨時URL

爬蟲第二步

訪問臨時的公眾號URL -- common.js裡的look_wechat_by_url 方法,得到最近10條圖文訊息列表,注意 這裡搜狗微信做了反爬蟲機制,經常出現驗證碼,程式碼中需要破解驗證碼,nodejs識別驗證碼暫時沒找到好用的模組,
我使用的是第三方介面實現的.授權碼已遮蔽. 所有文章資料在JS程式碼中,通過正則獲取. match(/var msgList = ({.+}}]});?/) ,分析資料結構, 重組成自己需要的資料結構.

爬蟲第三步

根據圖文url獲取詳細資訊,釋出日期,作者,公眾號,閱讀量,點贊量等 -- common.js裡的 get_info_by_url方法
其中,閱讀量和點贊量是ajax獲取的,微信文章的永久連結,看程式碼,就不寫明瞭.

相關推薦

nodejs爬蟲文章

成果 展示地址 使用模組 async -- 非同步流程控制 基本使用request -- 抓取網站模組 官網cheerio -- 處理html模組 官網 思路 爬取的思路 : 從搜尋開始 ->

【學習】06 爬蟲使用代理地址爬文章

實現功能 根據登陸後的cookie製作header,請求搜尋微信文章url需要使用urlencode拼接使用代理避免IP被封使用pyquery解析得到需要的欄位資訊爬取文章詳情頁並存儲到M

第三百三十節,web爬蟲講解2—urllib庫爬蟲—實戰爬公眾號

文章 odin data 模塊 webapi 頭信息 hone 微信 android 第三百三十節,web爬蟲講解2—urllib庫爬蟲—實戰爬取搜狗微信公眾號 封裝模塊 #!/usr/bin/env python # -*- coding: utf-8 -*- impo

知網摘要作者資訊爬新聞的爬蟲

個人專案,只支援python3. 需要說明的是,本文中介紹的都是小規模資料的爬蟲(資料量<1G),大規模爬取需要會更復雜,本文不涉及這一塊。另外,程式碼細節就不過多說了,只將一個大概思路以及趟過的

公眾號文章

機器能做的事就別讓人來做! 目標: 抓取特定微信公眾號文章 思路:利用selenium模擬瀏覽器行為,進行抓取(理由:搜狗已將文章連結進行處理,且頁面為動態生成) 框架:    步驟: 1、登入搜狗   a、找到登入按鈕並點選   self.browser.

基於的公眾號文章爬蟲

需求分析 先來看一下目標網站。 這次爬取的內容是通過搜狗微信的介面獲取微信文章的 url 然後提取目標文章的內容及公眾號資訊。 可以指定內容進行爬取 那這次需要解決的問題有哪些呢? 需要解決的問題 搜狗微信在沒有登入的情況下可以爬取十頁資訊,我們想要獲取更多的

python3 爬蟲實戰 :用 Appium 手機 app 的 資料

  From:https://blog.csdn.net/Fan_shui/article/details/81413595   本編教程從 appium 的環境配置開始,到抓取手機 app 微信朋友圈結束。 知乎:https://zhuanlan.zhihu.c

NodeJs爬蟲古代典籍,共計16000個頁面心得體會總結及項目分享

star 完成 這樣的 過程 優點 header 時間 eof ssi 項目技術細節 項目大量用到了 ES7 的async 函數, 更直觀的反應程序了的流程。為了方便,在對數據遍歷的過程中直接使用了著名的async這個庫,所以不可避免的還是用到了回調promise

python爬獲取指定公眾號的文章

lac bubuko 驗證 user pre info 分享 ima sogo 前言: 之前收藏了一個叫微信公眾號的文章爬取,裏面用到的模塊不錯。然而 偏偏報錯= =。果斷自己寫了一個 正文: 第一步爬取搜狗微信搜到的公眾號: http://weixin.sogo

利用python指數學習筆記

1.搜狗指數 強調下:搜狗指數抓取真的很簡單、很簡單、很簡單,大家一定不要被嚇到,哈哈哈哈。 搜狗指數是一個指數指標,能夠反應出來每天人們搜尋的趨向,每天都有搜尋變化表以及隨機搜尋內容。 本來打算爬取百度指數,但是百度的反爬蟲做的很好,均要解析圖片,因此先以搜狗進行學習

基於scrapy的分散式爬蟲新浪博個人資訊和博內容存入MySQL

為了學習機器學習深度學習和文字挖掘方面的知識,需要獲取一定的資料,新浪微博的大量資料可以作為此次研究歷程的物件 一、環境準備 python 2.7  scrapy框架的部署(可以檢視上一篇部落格的簡要操作,傳送門:點選開啟連結) mysql的部署(需要的資源

nodejs爬蟲非同步資料案例

在csdn上圖片顯示有問題,可以去我的個人部落格上檢視原版: http://tosim.top/2017/07/21/nodejs%E7%88%AC%E8%99%AB%E6%8A%93%E5%8F%96%E5%BC%82%E6%AD%A5%E6%95%B0%E

最新python爬蟲新浪博千萬級資料,scrapy思路+架構+原始碼

1.1 爬取目標 爬取的目標是新浪微博使用者的公開基本資訊,如使用者暱稱、頭像、使用者的關注、粉絲列表以及釋出的微博等 1.2 準備工作     代理池、 Cookies 池已經實現並可以正常執行,安裝 Scrap

python爬蟲-- 網頁、圖片、文章

零基礎入門Python,給自己找了一個任務,做網站文章的爬蟲小專案,因為實戰是學程式碼的最快方式。所以從今天起開始寫Python實戰入門系列教程,也建議大家學Python時一定要多寫多練。 目標 1,學習Python爬蟲 2,爬取新聞網站新聞列表 3,爬取圖片 4,把爬取到的資料存在本地

webMagic爬蟲某個部落格全部文章名稱

demo下載地址:點選開啟連結 主要類: package testMagic; import java.util.List; import javax.management.JMException; import us.codecraft.webmagic.Pag

php頁面的幾種方法

close deb clas win exe _array error: fopen ini 一、 PHP抓取頁面的主要方法:1. file()函數 2. file_get_contents()函數 3. fopen()->fread()->fclose

layabox 完成排行榜 (進行中)

希望在看這篇部落格之前你已經仔細的瞭解過微信的開放(封閉)資料域了; 微信的開放資料域是為了保護微信的資料安全,這裡面一旦涉及到  wx.getgrounp  wx.get....  wx.get .... 都將被保護起來,如何保護它允許你在一個封閉的區域裡面讓他顯示出來但

Android第三方繫結登入

微信登入官方文件地址:點選進入 一、準備工作 在進行微信登入之前,首先要在微信開放平臺註冊開發者賬號,並擁有一個已稽核通過的移動應用,並獲得相應的AppID和AppSecret,申請微信登入且通過稽核後,可開始接入流程。 微信開放平臺接入地址:點選進入 建立移動應用後獲得

(轉)小程式API——支付(順便講一下我遇見的坑)

https://blog.csdn.net/cwh1010714845/article/details/78944335     學習微信小程式已經半個多月了,終於接觸到小程式中一個很重要的功能——微信支付。接下來就給大家詳細講解一下微信支付功能的呼叫。 一想到微信支

Android 支付與Demo

最近公司弄Ionic框架,專案中需要微信支付,無奈,把我調過去弄,期間也是幾近崩潰,好在皇天不負有心人,在看別人的文件,終於是在專案中集成了微信支付,下面作為一個小白的我,想要把我的經驗分享給大家,希望對大家有所幫助。 先給一個可用的demo吧(執行前先看txt檔案) http://download.csd