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 相关文章推荐
Python多线程编程(二):启动线程的两种方法
Apr 05 Python
Python中获取对象信息的方法
Apr 27 Python
Python的Django REST框架中的序列化及请求和返回
Apr 11 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
详解Django 中是否使用时区的区别
Jun 14 Python
用python爬取租房网站信息的代码
Dec 14 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
浅谈Python协程
Jun 17 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
自动跳转中英文页面
2006/10/09 PHP
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
10个顶级Python实用库推荐
2021/03/04 Python
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
护士自我鉴定范文
2013/10/06 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
python垃圾回收机制原理分析
2022/04/13 Python
Redis 限流器
2022/05/15 Redis