# -*- 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. Seqlite学习

    之前没有接触过数据库编程,尼玛,面试神码的最恶心了,非得神码都懂点,好吧,最近开始研究下,先从SQLite开始吧,贴上找到SQliteDB.之后搜集资料,慢慢学习!

  2. 高性能Web服务之lnmp架构应用

    传统上基于进程或线程模型架构的web服务通过每进程或每线程处理并发连接请求,这势必会在网络和I/O操作时产生阻塞,其另一个必然结果则是对内存或CPU的利用率低下.生成一个新的进程/线程需要事先备好其运 ...

  3. 【Android】Android连接SQLite3数据库的操作

    在前面使用SQLite3的时候,并没有留意到有SQLiteOpenHelper这个类,所以只好在Activity里面去创建和维护数据库跟数据表的创建. 但是,现在有了SQLiteOpenHelper这 ...

  4. 代码管理(五)git 删除分支

    1.删除远程分支 在远程下面,选择需要删除的分支,右击,选择删除 2.  删除不存在远程对应分支的本地分支 在远程上建立了一个分支feature,后来leader觉得不合理,就把远程feature分支 ...

  5. [AaronYang原创] 敏捷开发-Jira 6.0.5环境搭建[1]

    我的环境 Win7 64位,MSSql2008 R2,已经安装tomcat了 拓展环境 jira  6.0.5     百度网盘下载           官网更多版本下载 安装好Java的运行环境(j ...

  6. MySQL中模拟oracle中的rownum列

    mysql> select @rn := @rn + 1 as rownum, emp_no, dept_no, from_date, to_date -> from dept_emp, ...

  7. PowerShell 获取Site Collection下被签出的文件

    由于权限的设置,当文件被签出时导致别人不可见了,这对校验文件个数的人来说着实是件烦恼的事.幸好利用PowerShell,可以获取Site Collection下被签出的文件. Resolution A ...

  8. MySQL 5.7.19 CentOS 7 安装

    Linux的版本有很多,因此下载mysql时,需要注意下载对应Linux版本的MySql数据库文件.以下方法也适合centOS 7 的mysql 5.7.* 版本的安装.安装方法我整理为16步. 1: ...

  9. appium通过同级别(兄弟关系)元素找到元素

    在做appium测试用例的时候,要获取金额值,用uiautomatorviewer查看该元素,该元素没有特别明显的个性特点,唯一有特点的定位是有content-desc值,但是该值是变动的,所以无法通 ...

  10. nexus7 1代 刷4.2.2+root[转]

    下面和大家分享一下刷机方法.(该刷机方法根据论坛有小改动)刷机前记得备份...刷机前准备:一.准备工具1.N7电脑驱动(usb_driver_r06_windows.zip)2.刷机工具(N7 fas ...