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发布模块的步骤分享
Feb 21 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
Python实现SMTP发送邮件详细教程
Mar 02 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
详解Python打包分发工具setuptools
Aug 05 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
Django多数据库配置及逆向生成model教程
Mar 28 Python
python编写一个会算账的脚本的示例代码
Jun 02 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 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
php 删除cookie和浏览器重定向
2009/03/16 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
python使用scrapy解析js示例
2014/01/23 Python
python实现多线程抓取知乎用户
2016/12/12 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
Python中property函数用法实例分析
2018/06/04 Python
Django实现表单验证
2018/09/08 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
EJB与JAVA BEAN的区别
2016/08/29 面试题
合作意向书模板
2014/03/31 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
校本培训个人总结
2015/02/28 职场文书
家长会开场白和结束语
2015/05/29 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript