python實現(xiàn)小程序推送頁面收錄腳本
小程序搜索推送接口: developers.weixin.qq.com/miniprogram…
小程序獲取assess_token:developers.weixin.qq.com/miniprogram…
當時看到小程序頁面收錄的時候也是很恍然,一直都沒有怎么注意到這個東西,直到加了微信小程序社區(qū)的官方群才看到有人提及這個東西,索性點進去看了一下,發(fā)現(xiàn)收錄頁面達到了17萬,應該不算太多,屬于爬蟲自然收錄。
也有過人問過我怎么做收錄的,真的,就是自然收錄,無非是詳情頁比較重要而已,因為參數(shù)的不同收錄肯定會增多很多,前提是不要隨意的攔截用戶登錄。當然也和朋友交流過這方面的東西,后面發(fā)現(xiàn)收錄是周期性的,大概是間隔7天左右會有一次上漲,所以過了幾天之后漲了4萬達到了21萬。
但是他們都是頁面推送的收錄,我去看了下發(fā)現(xiàn)我們的是一個推送收錄都沒有,然后大概的問了問自己就寫了一份推送收錄的Python腳本。
廢話過多直接上代碼吧,如有不足之處還望指教。
import requests import math import time import json """ @author: axin @time:2019/12/14 14:30 @File: smpush.py """ # 設(shè)置配置信息 appid = "" # 小程序appid secret = "" # 小程序secret sn = 990 # 每次推送數(shù)量 timer = 5 # 每次睡眠時間 # 獲取小程序assess_token tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}".format(appid, secret) tokenReq = requests.get(tokenUrl) tokenResp = tokenReq.json() token = tokenResp['access_token'] # 拼接推送鏈接 url = "https://api.weixin.qq.com/wxa/search/wxaapi_submitpages?access_token={}".format(token) # 獲取小程序招工推送列表 postData = { "access_token": token, "pages": [] } #讀取所有待推送信息 with open('ids.txt', 'r') as f: ids = f.read() ids = ids.split(",") # 切割成數(shù)組保存 idsLen = len(ids) # 獲取數(shù)組長度 maxGroup = math.ceil(idsLen / sn) # 最大的分組數(shù)量 group_m = -1 lists = [] # 使用新數(shù)組保存 for i in range(idsLen): if i % sn == 0: group_m += 1 lists.append([ids[i]]) else: lists[group_m].append(ids[i]) #分組推送 sign = 0 # 標記當前推送條數(shù) for item in lists: arrData = [] # 聲明或重置待提交數(shù)組 for i in item: data = { "path": "pages/detail/info/info", "query": "id=" + i } arrData.append(data) postData['pages'] = arrData onceReq = requests.post(url, json.dumps(postData)) onceRes = onceReq.json() signStart = sign * sn signEnd = (sign * sn) + sn if onceRes['errcode'] == 0: print("當前推送第{} - {} 條:成功!最后一條數(shù)據(jù)為:{}".format(signStart, signEnd, arrData[-1])) elif onceRes['errcode'] == 47006: print("當前推送第{} - {} 條:失敗!返回狀態(tài)碼:{},最后一條數(shù)據(jù)為:{}, 當日推送已達到最大上限!".format(signStart, signEnd, onceRes['errcode'], arrData[-1])) break else: print("當前推送第{} - {} 條:失敗!返回狀態(tài)碼:{},最后一條數(shù)據(jù)為:{}".format(signStart, signEnd, onceRes['errcode'], arrData[-1])) sign += 1 time.sleep(timer) # 設(shè)置睡眠時間
還有一個參數(shù)文本,由于id過多就將id導入了一個txt,然后讀取之后用","進行了一次分割。
感謝@克隆:sheep:多利建議改了Python的format以及下掉eval
到此這篇關(guān)于python實現(xiàn)小程序推送頁面收錄腳本的文章就介紹到這了,更多相關(guān)python推送收錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用隱式循環(huán)快速求和的實現(xiàn)示例
這篇文章主要介紹了python使用隱式循環(huán)快速求和的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09Python?opencv應用實現(xiàn)圖片切分操作示例
這篇文章主要為大家介紹了Python?opencv應用實現(xiàn)圖片切分的操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06Python自動化運維之Ansible定義主機與組規(guī)則操作詳解
這篇文章主要介紹了Python自動化運維之Ansible定義主機與組規(guī)則操作,結(jié)合實例形式分析了自動化運維工具Ansible定義主機與組規(guī)則相關(guān)配置操作與注意事項,需要的朋友可以參考下2019-06-06Python實現(xiàn)根據(jù)指定端口探測服務器/模塊部署的方法
這篇文章主要介紹了Python根據(jù)指定端口探測服務器/模塊部署的方法,非常具有實用價值,需要的朋友可以參考下2014-08-08Python Pandas describe()函數(shù)的使用詳解
pandas庫中的describe()函數(shù)為我們提供了這樣的功能,它可以快速生成數(shù)據(jù)集的描述性統(tǒng)計信息,這篇文章主要介紹了Python Pandas describe()函數(shù)的使用介紹,需要的朋友可以參考下2024-05-05利用Numba與Cython結(jié)合提升python運行效率詳解
近些年來, Numba和Cython在數(shù)學科學界得到了廣泛的關(guān)注。它們都提供了一種加速CPU密集型任務的方法,但以不同的方式。本文描述了它們之間體系結(jié)構(gòu)的差異2021-09-09