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标准库defaultdict模块使用示例
Apr 28 Python
常见的python正则用法实例讲解
Jun 21 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
python pyheatmap包绘制热力图
Nov 09 Python
python调用java的jar包方法
Dec 15 Python
python实现视频读取和转化图片
Dec 10 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 Python
Python基础知识之变量的详解
Apr 14 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 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
获取URL文件名后缀
2013/10/24 PHP
php开启openssl的方法
2014/05/15 PHP
php绘制一个扇形的方法
2015/01/24 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python模拟斗地主发牌
2020/04/22 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
物流经理自我评价
2013/09/23 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
高中化学教学反思
2016/02/22 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
如何通过cmd 连接阿里云服务器
2022/04/18 Servers