【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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM