python 自动抢红包_【Python】微博自动抢红包

# -*- 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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值