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

橫空出世:基于PC端的爬取公眾號歷史文章

優(yōu)采云 發(fā)布時(shí)間: 2020-11-20 10:04

  基于PC文章爬行官方帳戶(hù)的歷史記錄

  前言

  許多處于微信后臺的消息尚未得到回復:看到它們后我無(wú)法回復。如有任何疑問(wèn),可以添加我的微信:菜單->與我聯(lián)系

  因為我最近需要官方帳戶(hù)的歷史文章信息,所以我嘗試對其進(jìn)行爬網(wǎng)。盡管目前可以對數據進(jìn)行爬網(wǎng),但是它還不能對很多自動(dòng)化進(jìn)行爬網(wǎng)。原因是參數鍵值對時(shí)間敏感(特定時(shí)間未驗證為20分鐘),并且我不知道如何生成它。

  文章歷史記錄列表爬網(wǎng)

  進(jìn)入搜狗微信的第一件事是搜狗微信,但搜狗微信只能看到前十篇文章文章,而我無(wú)法確定閱讀量和觀(guān)看次數。我試圖爬網(wǎng)手機包裝,發(fā)現沒(méi)有信息被捕獲。我知道原因:

  1、Android系統7.低于0的微信信任系統證書(shū)。

  2、Android系統7. 0或更高版本,微信7. 0版本,微信信任系統提供的證書(shū)。

  3、Android系統7. 0或更高版本,微信7. 0或更高版本,微信僅信任自己的證書(shū)。

  我也嘗試使用appium自動(dòng)進(jìn)行爬網(wǎng),我個(gè)人覺(jué)得有點(diǎn)麻煩。因此,嘗試從PC抓取請求。

  這次進(jìn)入主題,我使用Fiddler捕獲數據包。下載鏈接:

  Fiddler如何捕獲數據包將不在此處一一解釋。首先,首次安裝Fiddler時(shí),需要安裝證書(shū)以捕獲HTTPS請求。

  如何安裝?

  打開(kāi)Fiddler并從菜單欄中找到工具->選項->單擊HTTPS->單擊操作,將安裝證書(shū),配置如下:

  以我自己的官方帳戶(hù)為例:登錄PC上的微信,打開(kāi)Fiddler,按F12鍵開(kāi)始/停止抓包,進(jìn)入官方帳戶(hù)歷史記錄文章頁(yè),請參見(jiàn)Fiddler有很多請求,如圖所示下方:

  因為查看歷史記錄是為了跳轉到新頁(yè)面,所以您可以從正文中返回更多內容,并且通過(guò)Content-Type,您還可以知道返回的內容是css或html或js,因此您可以查看首先在html上,所以幾乎可以在上面顯示的紅色框中找到鏈接,單擊它,然后您可以從右側查看返回結果和參數:

  從右側的頁(yè)眉中,您可以看到請求鏈接,方法,參數等。如果要更清晰地查看參數,可以單擊WebForms進(jìn)行查看,其結果如上圖所示。這是重要參數的說(shuō)明:

  __ biz:微信官方帳號的唯一標識(同一官方帳號保持不變)

  uin:唯一的用戶(hù)標識(同一微信用戶(hù)保持不變)

  鍵:微信的內部算法對時(shí)間敏感,所以我不知道它是如何計算的。

  pass_ticket:有一個(gè)閱讀權限加密,該加密已更改(在我的實(shí)際爬網(wǎng)中,我發(fā)現它是不必要的,可以忽略)

  在這一點(diǎn)上,您實(shí)際上可以編寫(xiě)代碼來(lái)爬網(wǎng)第一頁(yè)的文章,但是返回的是html頁(yè),顯然解析該頁(yè)很麻煩。

  您可以嘗試向下滑動(dòng),加載下一頁(yè)數據,然后查看它是json還是html。如果是json,則很容易處理,如果仍然是html,則必須對其進(jìn)行一些解析。繼續往下走,您會(huì )發(fā)現:

  此請求是返回的文章列表,它是json數據,這對我們進(jìn)行解析非常方便。從參數中,我們發(fā)現有一個(gè)偏移量為10的參數,這顯然是頁(yè)面的偏移量。此請求為10,以加載第二頁(yè)的歷史記錄,將其果斷地修改為0,然后發(fā)送請求,并獲取第一頁(yè)的數據,則無(wú)需解析html頁(yè),再次分析參數,并找到許多參數。他們中許多人是無(wú)用的。最終參數為:

  action:getmsg(固定值,應表示獲取更多信息)

  上面已經(jīng)描述了__biz,uin和key的三個(gè)值,它們也是此處的必需參數。

  f:json(固定值,表示返回json數據)

  偏移量:頁(yè)面偏移量

  如果要獲取官方帳戶(hù)的歷史記錄列表,則這6個(gè)參數是必需的,并且不需要帶其他參數。如圖所示,讓我們分析請求標頭中的聽(tīng)眾:

  參數很多,我不知道應該帶哪些參數,不需要帶那些參數。最后,我只需要攜帶UA。最后編寫(xiě)一個(gè)腳本來(lái)嘗試獲取它:

  import requests

url = "鏈接:http://鏈接:mp.weixin鏈接:.qq.com/mp/profile_ext"

headers= {

'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A403 MicroMessenger/6.5.18 NetType/WIFI Language/zh_CN'

}

param = {

'action': 'getmsg',

'__biz': 'MzU0NDg3NDg0Ng==',

'f': 'json',

'offset': 0,

'uin': 'MTY5OTE4Mzc5Nw==',

'key': '0295ce962daa06881b1fbddd606f47252d0273a7280069e55e1daa347620284614629cd08ef0413941d46dc737cf866bc3ed3012ec202ffa9379c2538035a662e9ffa3f84852a0299a6590811b17de96'

}

index_josn = requests.get(url, params=param, headers=headers)

print(index_josn.json())

print(index_josn.json().get('general_msg_list'))

  獲取json對象中的general_msg_list,并獲取結果:

  獲取文章詳細信息

  我有上面的鏈接,只是請求解析html頁(yè)面。這里沒(méi)有更多說(shuō)明(可以在完整代碼中查看)。

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

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