python實(shí)現(xiàn)小程序推送頁(yè)面收錄腳本
小程序搜索推送接口: developers.weixin.qq.com/miniprogram…
小程序獲取assess_token:developers.weixin.qq.com/miniprogram…
當(dāng)時(shí)看到小程序頁(yè)面收錄的時(shí)候也是很恍然,一直都沒(méi)有怎么注意到這個(gè)東西,直到加了微信小程序社區(qū)的官方群才看到有人提及這個(gè)東西,索性點(diǎn)進(jìn)去看了一下,發(fā)現(xiàn)收錄頁(yè)面達(dá)到了17萬(wàn),應(yīng)該不算太多,屬于爬蟲(chóng)自然收錄。
也有過(guò)人問(wèn)過(guò)我怎么做收錄的,真的,就是自然收錄,無(wú)非是詳情頁(yè)比較重要而已,因?yàn)閰?shù)的不同收錄肯定會(huì)增多很多,前提是不要隨意的攔截用戶登錄。當(dāng)然也和朋友交流過(guò)這方面的東西,后面發(fā)現(xiàn)收錄是周期性的,大概是間隔7天左右會(huì)有一次上漲,所以過(guò)了幾天之后漲了4萬(wàn)達(dá)到了21萬(wàn)。
但是他們都是頁(yè)面推送的收錄,我去看了下發(fā)現(xiàn)我們的是一個(gè)推送收錄都沒(méi)有,然后大概的問(wèn)了問(wèn)自己就寫了一份推送收錄的Python腳本。
廢話過(guò)多直接上代碼吧,如有不足之處還望指教。
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 # 每次睡眠時(shí)間
# 獲取小程序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ù)組長(zhǎng)度
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 # 標(biāo)記當(dāng)前推送條數(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("當(dāng)前推送第{} - {} 條:成功!最后一條數(shù)據(jù)為:{}".format(signStart, signEnd, arrData[-1]))
elif onceRes['errcode'] == 47006:
print("當(dāng)前推送第{} - {} 條:失??!返回狀態(tài)碼:{},最后一條數(shù)據(jù)為:{}, 當(dāng)日推送已達(dá)到最大上限!".format(signStart, signEnd, onceRes['errcode'], arrData[-1]))
break
else:
print("當(dāng)前推送第{} - {} 條:失?。》祷貭顟B(tài)碼:{},最后一條數(shù)據(jù)為:{}".format(signStart, signEnd, onceRes['errcode'], arrData[-1]))
sign += 1
time.sleep(timer) # 設(shè)置睡眠時(shí)間
還有一個(gè)參數(shù)文本,由于id過(guò)多就將id導(dǎo)入了一個(gè)txt,然后讀取之后用","進(jìn)行了一次分割。

感謝@克隆:sheep:多利建議改了Python的format以及下掉eval

到此這篇關(guān)于python實(shí)現(xiàn)小程序推送頁(yè)面收錄腳本的文章就介紹到這了,更多相關(guān)python推送收錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python OpenCV為CNN增加圖像樣本的實(shí)現(xiàn)
這篇文章主要介紹了使用Python OpenCV為CNN增加圖像樣本的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Pytorch通過(guò)保存為ONNX模型轉(zhuǎn)TensorRT5的實(shí)現(xiàn)
這篇文章主要介紹了Pytorch通過(guò)保存為ONNX模型轉(zhuǎn)TensorRT5的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
詳解分布式任務(wù)隊(duì)列Celery使用說(shuō)明
這篇文章主要介紹了詳解分布式任務(wù)隊(duì)列Celery使用說(shuō)明,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Python的地形三維可視化Matplotlib和gdal使用實(shí)例
這篇文章主要介紹了Python的地形三維可視化Matplotlib和gdal使用實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以了解下。2017-12-12
Python制作當(dāng)年第一款手機(jī)游戲-貪吃蛇游戲(練習(xí))
這篇文章主要介紹了Python制作當(dāng)年第一款手機(jī)游戲-貪吃蛇游戲,文章利用Python?pygame做一個(gè)貪吃蛇的小游戲而且講清楚每一段代碼是用來(lái)干嘛的,需要的朋友可以參考一下2022-01-01
Python從入門到實(shí)戰(zhàn)之?dāng)?shù)據(jù)結(jié)構(gòu)篇
數(shù)據(jù)結(jié)構(gòu)中有很多樹(shù)的結(jié)構(gòu),其中包括二叉樹(shù)、二叉搜索樹(shù)、2-3樹(shù)、紅黑樹(shù)等等。本文中對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行了總結(jié),不求嚴(yán)格精準(zhǔn),但求簡(jiǎn)單易懂2021-11-11
python實(shí)現(xiàn)的守護(hù)進(jìn)程(Daemon)用法實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的守護(hù)進(jìn)程(Daemon)用法,實(shí)例分析了Python進(jìn)程操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python Pillow Image.save 保存為jpg圖片壓縮問(wèn)題
Pillow 庫(kù)支持多種圖片格式,Pillow 能夠很輕松地實(shí)現(xiàn)圖片格式之間的轉(zhuǎn)換。本文就來(lái)詳細(xì)的介紹一下Image.save的具體使用,感興趣的可以了解一下2021-11-11

