# -*- coding: utf-8 -*-
import requests
import js2xml
from lxml import etree
headers = {
# 这边cookie替换成你的cookie
'Cookie':'9b',
'User-Agent': 'Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19',
}
# 获取红包列表 def getuid():
url = 'http://chunjie.hongbao.weibo.com/hongbao2017/h5index'
# 带上request headers
z = requests.get(url, headers=headers)
#print(z.status_code)
if z.status_code == 200:
# 这边是查找所有的ouid
alluid = etree.HTML(z.content).xpath('//div[@class="m-auto-box"]/@action-data')
#print(alluid)
#print(etree.HTML(z.content).xpath('/html/body/div[1]/section/div[2]/span'))
return alluid def getname(url):
#url = 'http://hongbao.weibo.com/h5/aboutyou?groupid=1000110'
# 带上request headers
z = requests.get(url, headers=headers)
#print(z.status_code)
if z.status_code == 200:
# 这边是查找所有的ouid
name=etree.HTML(z.content).xpath('//span[@class="nickname"]')
print(name[0].text)
return name # 获取st的值 def getst(url):
# 带上request headers
z = requests.get(url, headers=headers)
# 获取第一段JavaScript,并去掉 <!--拆包页-->,防止中文报错
jscode = etree.HTML(z.content).xpath(
"//script[contains(., 'weibo')]/text()")[0].replace(u'<!--拆包页-->', '')
# 使用js2xml 把JavaScript代码替换成xml
parsed_js = js2xml.parse(jscode)
# 打印下 xml
# print js2xml.pretty_print(parsed_js) # 从上面可以看到st在哪,然后用xpath写出来
st = parsed_js.xpath('//property[@name="st"]/string/text()')[0]
return st
# 抢红包 def tj(url, uid, st, tjheaders):
# 生成需要发送的data
data = {
'groupid': '1000110',
'uid': uid,
'share': '1',
'st': st
}
# 这里使用了post,headers增加了Referer
z = requests.post(url, data=data, headers=tjheaders)
#print(z.json())
# 把得到的结果以json形式展示
_ = z.json()
# 如果json中有“ok”,表示提交成功了,否则返回报错信息
#print(_['ok'])
#if _['ok']!=1:
#print(_)
print (_['data']['result']['name'])
# else:
#print (_['error_code'])
if __name__ == '__main__':
# 得到所有的uid
uids = getuid()
# 获取st
#print(st)
url = 'http://hongbao.weibo.com/h5/aboutyou?groupid=1000110'
getname(url)
st = getst(url)
for uid in uids:
#print(uid)
# 生成红包页面的url
url = 'http://hongbao.weibo.com/h5/aboutyou?groupid=1000110&ouid=%s' %uid # 生成点击“抢红包”页面的url
tjurl = 'http://hongbao.weibo.com/aj_h5/lottery?uid=%s&groupid=1000110&wm=' %uid
getname(url)
# 添加Referer,如果不添加会报错
headers['Referer'] = url
tjheaders = headers
try:
# 点击“抢红包”
tj(tjurl,uid,st,tjheaders)
except:
pass

  

【Python】微博自动抢红包的更多相关文章

  1. Python自动抢红包,超详细教程,再也不会错过微信红包了!

    目录: 0 引言 1 环境 2 需求分析 3 前置准备 4 抢红包流程回顾 5 代码梳理 6 后记 0 引言 提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一 ...

  2. 一步一步实现iOS微信自动抢红包

    微信红包 前言:最近笔者在研究iOS逆向工程,顺便拿微信来练手,在非越狱手机上实现了微信自动抢红包的功能.   此教程所需要的工具/文件 yololib class-dump dumpdecrypte ...

  3. 被「李笑来老师」拉黑之「JavaScript微博自动转发的脚本」

    故事的背景如下图,李笑来 老师于10月19日在 知乎Live 开设 一小时建立终生受用的阅读操作系统 的讲座,他老人家看到大家伙报名踊跃,便在微博上发起了一个 猜数量赢取iPhone7 的活动. 因为 ...

  4. iOS微信自动抢红包插件(支持后台和锁屏下抢红包)

    前言:本文主要讲述使用hook方式实现红包插件,涉及到tweak相关知识,如果你不想了解具体实现细节可直接到我的Github地址参考安装(包含越狱和非越狱两种方法)   转眼间2017即将过去,又到了 ...

  5. 如何手动写一个Python脚本自动爬取Bilibili小视频

    如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...

  6. 使用Sphinx为你的python模块自动生成文档

    Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等. 安装 创建一个sphinx项目 下面的命令会 ...

  7. Python 之自动获取公网IP

    Python 之自动获取公网IP 2017年9月30日 文档下载:https://wenku.baidu.com/view/ff40aef7f021dd36a32d7375a417866fb84ac0 ...

  8. 微信自动抢红包android实现

    AccessibilityService-微信自动抢红包 2018年02月01日 16:09:06 阅读数:1757 在领导发红包的时候,看到有些同事在1s.2s抢到红包,为什么他们能够这么快?一定是 ...

  9. 用python实现自动玩21点小游戏

    1. 背景 前段时间发现一个论坛上(https://npupt.com/blackjack.php)有21点小游戏. 这个21点小游戏的规则是每个人开局都会获得随机点数,如果觉得点数小,可以继续摸牌. ...

随机推荐

  1. Android--------从一个包中的Avtivity创建另外另外一个包的Context

    Android中有Context的概念,想必大家都知道.Context可以做很多事情,打开activity.发送广播.打开本包下文件夹和数据库.获取classLoader.获取资源等等.如果我们得到了 ...

  2. 如何禁用Visual Studio 2013的浏览器链接功能

    VS2013新增的Browser Link功能虽然“强大”,但我并不需要. 但默认是开启的,会在页面中自动添加如下的代码,真是烦人! <!-- Visual Studio Browser Lin ...

  3. /struts-tags not found ,/struts-dojo-tags not found 上线后异常解决方案

    上线到2003上后发现2个问题:1 缺少/struts-tags2 缺少/struts-dojo-tags在xp上不用直接指定这些文件的位置,但在其他的系统可能无法自动找到它的路径,一定要明确指定在w ...

  4. 【java基础】Java反射机制

    一.预先需要掌握的知识(java虚拟机)  1)java虚拟机的方法区:  java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区.方法区的主要作用是存 ...

  5. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  6. 豆瓣上9分以上的IT书籍-编程语言篇

    我当要学习某些技术时,第一时间就是去找相关的书籍.而豆瓣读书是我主要的参考依据,主要是它的评分基本比较靠谱,对于技术书籍,一般来说评分在8分以上就是不错的书籍了,而达到9分就可以列入"必读& ...

  7. @property与@synthesize的差别

    上一篇文章我有讲到self.与_的差别,往往和这个问题相伴随的是我困惑的问题是"@property与@synthesize的差别" @property的使用方法 @interfac ...

  8. zookeeper注册中心安装(单机版)

    下载zookeeper-3.4.9.tar.gz wget http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar. ...

  9. SharePoint 2013 Backup Farm Automatically With a Powershell and Windows Task Schedule

    In this post,I will show you SharePoint 2013 How to Backup Farm Automatically with a PowerShell and ...

  10. struts系列:校验(三)国际化

    一.设置国际化资源标识 struts可以通过request_locale参数来进行国际化参数设置 例如页面可以通过如下链接完成语言切换: <s:a href="locale.actio ...