以『公眾號』為例,手把手教你爬取PC端數據


之前教過大家如何爬取手機APP數據【以某乎為實戰案例,教你用Python爬取手機App數據

思路:主要是通過手機設置代理,然后在pc端開啟抓包工具獲取數據包,然后在編寫python代碼(get方式)去請求數據

上次有粉絲說,那個是ios手機安卓手機現在需要root權限才可以安裝證書,那么今天就不以手機為例,以電腦PC端為例,這樣大家都可以上手嘗試

今天教大家抓到post數據包之后,怎么編寫python代碼去狗仔構造數據包,這里以獲取『微信公眾號』文章的閱讀數點贊數在看數為例進行講解(之所以以這個例子,主要還是有點難度的,所以給大家分享一下這個技術)

1、抓包工具

同樣,這里還是使用Fiddler

為什么要用抓包工具,不直接復制文章鏈接在瀏覽器里面采集?

因為在瀏覽器里面打開看不到閱讀數點贊數、在看數等

所以這里采用抓包的方式

1.配置Fiddler

端口設置為8888

這里設置一下過濾域名,目的是只查看需要查看的域名數據包

2.安裝證書

點擊第一個可以在pc機上安裝證書,Fiddler就可以抓取https數據包

2、pc端代理

在設置-代理,里面設置相應的ip和端口(這里ip是本機ip127.0.0.1,和fiddler中對應的端口)

下面就可以開始抓包

3、開始抓包

在pc機上打開微信公眾號文章,比如

打開之后再Fiddler可以看到數據包

比如原文中閱讀數:576、點贊:20、在看:5

對應數據包返回的json數據

4、編程構造Post請求

抓到數據包之后,我們可以知道cookie、表單,請求鏈接等信息

開始編寫代碼之前,先給大家說一下,大概需要用到哪些數據(表單里面有很多參數,但是大部分是不需要的),藍色選中的就是需要的參數,其他的可以忽略

請求頭(這里替換cookie),User-Agent是模擬手機瀏覽器

# 目標url
origin_url= "http://mp.weixin.qq.com/mp/getappmsgext"

headers = {
    "Cookie": yourcookie,
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.27.400 QQBrowser/9.0.2524.400"
}

 

這里是請求需要的其中三個參數(這個三個數通用的,可以不用改)

data = {
    "is_only_read": "1",
    "is_temp_url": "0",
    "appmsg_type": "9", # 新參數,不加入無法獲取like_num
}

剩下的其他參數(每個參數配備了相應的說明)

###同一個公眾號,這個不變
your__biz =""
###每一篇文章mid都不同
article_mid=""
###每一篇文章sn都不同
article_sn=""
###不變
article_idx="1"
###幾十分鍾有效,之后需要再次抓包更新
yourappmsg_token="1108_eNbZz5PR1hNkY3Duto6YbmYgGkvHMZaVbiPUGLsS53iccow77rh73HxzFPHQby1-Lw8AqItVlg_d96MU"

 

構造請求

​​​​​​​
origin_url = "https://mp.weixin.qq.com/mp/getappmsgext?"
appmsgext_url = origin_url + "__biz={}&mid={}&sn={}&idx={}&appmsg_token={}&x5=1".format(your__biz, article_mid, article_sn, article_idx, yourappmsg_token)
content = requests.post(appmsgext_url, headers=headers, data=data).json()

print(content)
print(content["appmsgstat"]["read_num"], content["appmsgstat"]["old_like_num"],content["appmsgstat"]["like_num"])

可以看到已經成功發送post成功,並且提取出對應的閱讀數、點贊數、在看數

5、擴展

同一個公眾號,如果需要獲取其他文章的這些數據,只需要改變mid和sn就可以了,不同文章的鏈接如下圖所示

6、小結

本文講解了如何爬取PC端數據(以微信公眾號為例),過程很詳細,滿滿干貨,希望可以起到拋磚引玉效果,讓大家學到更多技術!

推薦閱讀

手把手教你實現『B站直播』彈幕實時分析

以『B站直播』為例,實現數據『實時』可視化分析

Flask結合ECharts實現在線可視化效果,超級詳細!

python實時采集直播彈幕數據進行可視化展示

公眾號后台添加微信,可領取代碼

​​​​​​​


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM