python编写统计选票的程序_使用python编写微信公众号发稿统计程序
近日為學(xué)校公眾號統(tǒng)計(jì)發(fā)稿情況,需統(tǒng)計(jì)本年度各部門分別所發(fā)稿件標(biāo)題、時間、作者等。
首先考慮查看公眾號后臺有無統(tǒng)計(jì)功能,看到的界面如下:
每頁只顯示7天的消息,且沒有部門作者信息。再看另一界面:
只統(tǒng)計(jì)總體的發(fā)稿數(shù)量,閱讀量等信息,沒有具體的稿件信息。
再考慮通過微信前端,能否使用查看歷史消息的功能,獲得所有稿件。經(jīng)嘗試,網(wǎng)頁版微信無法打開歷史消息,手機(jī)端和PC端程序可以打開歷史消息,但無法進(jìn)行復(fù)制操作。而且歷史消息也不能獲得全部信息,只有稿件標(biāo)題和發(fā)表時間,并沒有作者信息。
再進(jìn)后臺逛一逛,沒發(fā)現(xiàn)有信息比較全面的地方,只是在“素材管理”的“圖文消息”下,還能列出比較多的消息,但同樣看不到部門作者信息。
好在后臺都是在瀏覽器中去打開,可以查看一下頁面的源代碼。這一看,有了意外的收獲。
這里有標(biāo)題、時間和部門作者信息。但這信息太亂了,怎么把它提取出來呢?
筆者近來一直研究創(chuàng)客、機(jī)器人和人工智能,這些領(lǐng)域都以Python語言為主要開發(fā)工具,我也學(xué)了它,正好在此實(shí)踐一下。
編程之前,我們還是先把數(shù)據(jù)捋一下,搞清楚。
首先,這個頁面并不包含全部的歷史消息,而是分頁顯示的。網(wǎng)頁地址是這樣的:https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=10&......
begin表示第幾頁,count表示每頁含有消息數(shù)量。為了減少翻頁次數(shù),我嘗試將count數(shù)量加大到100,結(jié)果發(fā)現(xiàn)返回的頁面并沒有包含100條消息,只有50條消息。經(jīng)驗(yàn)證,count最大設(shè)置為50時,返回的頁面包含消息數(shù)量和設(shè)置的數(shù)值是一值的。這樣我們可以分別使用…begin=0&count=50&…,…begin=50&count=50&…,…begin=100&count=50&…等地址來獲取每頁50條消息,直至取到所需要統(tǒng)計(jì)的起始日期為止。
接著,分析頁面數(shù)據(jù)的結(jié)構(gòu),整理如下:
這樣數(shù)據(jù)的結(jié)構(gòu)清晰多了,這兒整理出來只是為了讓大家能更容易看清,只要結(jié)構(gòu)不變,怎么亂我們的程序都能識別。最后就是利用Python編寫程序提取所需信息了。經(jīng)過反復(fù)調(diào)試,程序終于實(shí)現(xiàn)了功能。但目前還只是個半成品--未集成微信公眾號登錄及相關(guān)頁面下載的功能。需手動登錄后臺并進(jìn)入相關(guān)頁面保存相關(guān)網(wǎng)頁,然后用此程序提取信息。因微信登錄必須掃碼完成,所以手動操作是不可避免的,在后續(xù)的版本中,將提取人工掃碼登錄后的HTTP頭部參數(shù),傳遞到程序中,實(shí)現(xiàn)網(wǎng)頁的自動下載,提高自動化程度。關(guān)注“民族中專創(chuàng)新工作室”,發(fā)送“微信統(tǒng)計(jì)”,可獲取源碼下載地址。
總結(jié)
以上是生活随笔為你收集整理的python编写统计选票的程序_使用python编写微信公众号发稿统计程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java贪吃蛇_如何用Java还原童年回
- 下一篇: 西藏城投是什么板块 西藏城投的板块