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迭代器实例简析
Sep 25 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
JSON Web Tokens的实现原理
Apr 02 Python
Python 多线程的实例详解
Sep 07 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
Python随机函数random()使用方法小结
Apr 29 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 Python
Python Matplotlib绘制动画的代码详解
May 30 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生成静态页面详解
2006/11/19 PHP
FleaPHP的安全设置方法
2008/09/15 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
postman传递当前时间戳实例详解
2019/09/14 Python
Series和DataFrame使用简单入门
2019/11/13 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
Python字典实现伪切片功能
2020/10/28 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
全球在线商店:BerryLook
2019/04/14 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
报关专员求职信范文
2014/02/22 职场文书
同学聚会主持词
2014/03/18 职场文书
2016年教师新年寄语
2015/08/18 职场文书