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