溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python如何實(shí)現(xiàn)小程序推送頁(yè)面收錄腳本

發(fā)布時(shí)間:2020-08-01 14:43:02 來(lái)源:億速云 閱讀:284 作者:小豬 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了python如何實(shí)現(xiàn)小程序推送頁(yè)面收錄腳本,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

當(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)自己就寫(xiě)了一份推送收錄的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)前推送第{} - {} 條:失?。》祷貭顟B(tài)碼:{},最后一條數(shù)據(jù)為:{}, 當(dāng)日推送已達(dá)到最大上限!".format(signStart, signEnd, onceRes['errcode'], arrData[-1]))
   break
  else:
   print("當(dāng)前推送第{} - {} 條:失敗!返回狀態(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)行了一次分割。

python如何實(shí)現(xiàn)小程序推送頁(yè)面收錄腳本

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

python如何實(shí)現(xiàn)小程序推送頁(yè)面收錄腳本

看完上述內(nèi)容,是不是對(duì)python如何實(shí)現(xiàn)小程序推送頁(yè)面收錄腳本有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI