python实现小程序推送页面收录脚本


Posted in Python onApril 20, 2020

小程序搜索推送接口: developers.weixin.qq.com/miniprogram…

小程序获取assess_token:developers.weixin.qq.com/miniprogram…

当时看到小程序页面收录的时候也是很恍然,一直都没有怎么注意到这个东西,直到加了微信小程序社区的官方群才看到有人提及这个东西,索性点进去看了一下,发现收录页面达到了17万,应该不算太多,属于爬虫自然收录。

也有过人问过我怎么做收录的,真的,就是自然收录,无非是详情页比较重要而已,因为参数的不同收录肯定会增多很多,前提是不要随意的拦截用户登录。当然也和朋友交流过这方面的东西,后面发现收录是周期性的,大概是间隔7天左右会有一次上涨,所以过了几天之后涨了4万达到了21万。

但是他们都是页面推送的收录,我去看了下发现我们的是一个推送收录都没有,然后大概的问了问自己就写了一份推送收录的Python脚本。

废话过多直接上代码吧,如有不足之处还望指教。

import requests
import math
import time
import json

"""
@author: axin
@time:2019/12/14 14:30
@File: smpush.py
"""

# 设置配置信息
appid = ""  # 小程序appid
secret = "" # 小程序secret
sn = 990  # 每次推送数量
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(",") # 切割成数组保存
 idsLen = len(ids)  # 获取数组长度
 maxGroup = math.ceil(idsLen / sn) # 最大的分组数量
 group_m = -1
 lists = [] # 使用新数组保存
 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 # 标记当前推送条数
 for item in lists:
  arrData = [] # 声明或重置待提交数组
  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("当前推送第{} - {} 条:成功!最后一条数据为:{}".format(signStart, signEnd, arrData[-1]))
  elif onceRes['errcode'] == 47006:
   print("当前推送第{} - {} 条:失败!返回状态码:{},最后一条数据为:{}, 当日推送已达到最大上限!".format(signStart, signEnd, onceRes['errcode'], arrData[-1]))
   break
  else:
   print("当前推送第{} - {} 条:失败!返回状态码:{},最后一条数据为:{}".format(signStart, signEnd, onceRes['errcode'], arrData[-1]))

  sign += 1
  time.sleep(timer) # 设置睡眠时间

还有一个参数文本,由于id过多就将id导入了一个txt,然后读取之后用","进行了一次分割。

python实现小程序推送页面收录脚本

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

python实现小程序推送页面收录脚本

到此这篇关于python实现小程序推送页面收录脚本的文章就介绍到这了,更多相关python推送收录内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
Python实现文件按照日期命名的方法
Jul 09 Python
详解Python命令行解析工具Argparse
Apr 20 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
Python单例模式实例详解
Mar 01 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
Python列表生成式与生成器操作示例
Aug 01 Python
Python之时间和日期使用小结
Feb 14 Python
python获取txt文件词向量过程详解
Jul 05 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
python异常处理和日志处理方式
Dec 24 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 #Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 #Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 #Python
解决Python spyder显示不全df列和行的问题
Apr 20 #Python
Python爬虫实现vip电影下载的示例代码
Apr 20 #Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 #Python
tensorflow中tf.reduce_mean函数的使用
Apr 19 #Python
You might like
php Smarty 字符比较代码
2011/02/27 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
vue中使用echarts的示例
2021/01/03 Vue.js
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
在Python中处理XML的教程
2015/04/29 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
python中的字符串内部换行方法
2018/07/19 Python
python matlab库简单用法讲解
2020/12/31 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
养牛场项目建议书
2014/05/13 职场文书
公司联欢会策划方案
2014/05/19 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
药店营业员岗位职责
2015/04/14 职场文书
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs