微信公众号,统计公众平台的打赏人数和金额脚本

selenium,python3,chrome浏览器:

脚本会自动翻页,整合所有文章的打赏,最种按照粉丝名分类,然后从高到低打印。 还有总额。

其中的url地址,请替换成自己的公众号赞赏页面的地址哦~

微信公众号,统计公众平台的打赏人数和金额脚本

脚本代码如下。请对照本文日期,若相距太远,则公众平台可能有结构变更,请联系博主修改。vx: qingwanjianhua

# -*- coding:utf-8 -*-
import os,time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://mp.weixin.qq.com/merchant/reward?action=getlatestreward&appmsgid=&idx=&count=&token=&lang=zh_CN')

raw_input('请登陆成功后点击任意键 开始:\n')

res = {}
while True:
    zhangshu = driver.find_elements_by_xpath('//*[@id="articlelist"]/div[*]')

    for i in zhangshu:
        i.click()
        time.sleep(1)
        driver.implicitly_wait(3)

        while True:

            name = driver.find_elements_by_xpath('//*[@id="commentlist"]/table/tbody/tr[*]/td[1]/div/h3/div/span/span')
            money = driver.find_elements_by_xpath('//*[@id="commentlist"]/table/tbody/tr[*]/td[2]')
            for j in range(len(name)):
                # print name[j].text, money[j].text
                if name[j].text not in res.keys():
                    res[name[j].text] = float(money[j].text)
                else:
                    res[name[j].text] += float(money[j].text)
            try:
                driver.find_elements_by_link_text('下一页')[1].click()
                time.sleep(2)

            except:
                break
    # break #删掉哦
    try:
        driver.find_elements_by_link_text('下一页')[0].click()
        time.sleep(2)
    except:
        break


end = sorted(res.items(),key =lambda x:x[1],reverse=True)
sums = 0
print '--------------\n\n'
for i in end:
    print '【',i[0],'】 : ',i[1]
    sums += i[1]

print '\n总金额为:',sums



 

上一篇:Leetcode 203: Remove Linked List Elements


下一篇:[LeetCode] 1144. Decrease Elements To Make Array Zigzag 递减元素使数组呈锯齿状