元宇宙領(lǐng)域近兩年變得很火爆,各行各業(yè)都紛紛加入其中。而貴州茅臺似乎也想借此出圈,在今年元旦推出了自己的元宇宙APP——巽風(fēng)APP。這款A(yù)PP模擬了一個茅臺鎮(zhèn)的場景,玩家需要完成任務(wù)獲得積分,并且排名靠前的才能拿到原價購買茅臺酒的資格。不過這款A(yù)PP僅上線兩天就注冊用戶突破了100萬。
但是,這次出圈卻帶來不少爭議。近日有財經(jīng)網(wǎng)爆料稱,這個游戲被質(zhì)疑收割粉絲。有玩家表示,在里面充值超過3000元,才得到原價買茅臺的資格。不僅如此,大家還吐槽游戲枯燥,沒動力玩下去,更有玩家表示,茅臺不如直接把酒拿出來賣,到最后都只是黃牛的游戲。

其實,在線上搶購飛天茅臺也是很多人都想嘗試的事情。但是現(xiàn)在電商網(wǎng)站反爬措施做得很嚴(yán)格,比如同一地址用一臺機(jī)器和多個號碼下單將被視為無效搶購。網(wǎng)上雖然有很多搶購腳本可用,但是真正能效果好的卻很少。那么怎樣才能提高搶購成功率呢?我們可以通過使用爬蟲程序+爬蟲代理來實現(xiàn)搶購。具體來說就是利用python編寫爬蟲程序,并且使用付費高質(zhì)量代理IP來模擬多個用戶同時請求電商網(wǎng)站。
搶購流程主要分為三步:1、登錄;2、requests請求“確認(rèn)訂單”所需信息;3、requests請求“提交訂單”。其中最重要的就是使用爬蟲代理來避免IP被封殺或者限制訪問。
其中重點是如何實現(xiàn)爬蟲程序+爬蟲代理來實現(xiàn)搶購。這里的關(guān)鍵是代理的使用,像搶購類的業(yè)務(wù)對IP的需求是很高的,所以想要增加成功率就需要付費購買高質(zhì)量的代理。實現(xiàn)過程這里簡單的分享下
! -- encoding:utf-8 -- from urllib import request import threading # 導(dǎo)入threading庫,用于多線程 import time # 導(dǎo)入time庫,用于延時
要訪問的目標(biāo)頁面
targetUrl = “https://www.baidu.com” # 修改為百度
proxyHost = “t.16yun.cn” proxyPort = “31111”
proxyUser = “www.16yun.cn” proxyPass = “16ip”
proxyMeta = “http://%(user)s:%(pass)s@%(host)s:%(port)s” % { “host” : proxyHost, “port” : proxyPort, “user” : proxyUser, “pass” : proxyPass, }
proxy_handler = request.ProxyHandler({ “http” : proxyMeta, “https” : proxyMeta, })
opener = request.build_opener(proxy_handler)
request.install_opener(opener)
定義一個鎖對象,用于控制每200毫秒只能請求一次
lock = threading.Lock()
定義一個函數(shù),用于發(fā)起請求和打印響應(yīng)
def get_url(): # 獲取鎖,如果鎖被占用,就等待,直到鎖釋放 lock.acquire() resp = request.urlopen(targetUrl) # 發(fā)起請求 # 判斷狀態(tài)碼是否為200,如果不是,打印錯誤信息 if resp.status_code == 200: print(resp.read()) # 打印響應(yīng)內(nèi)容 else: print(f"請求失敗,狀態(tài)碼為{resp.status_code}") # 打印錯誤信息 time.sleep(0.2) # 延時200毫秒 # 釋放鎖,讓其他線程可以獲取鎖 lock.release()
定義一個列表,用于存放線程對象
threads = []
創(chuàng)建10個線程,每個線程執(zhí)行g(shù)et_url函數(shù)
for i in range(10): t = threading.Thread(target=get_url) # 創(chuàng)建線程對象 threads.append(t) # 將線程對象添加到列表中
啟動所有線程
for t in threads: t.start()
等待所有線程結(jié)束
for t in threads: t.join()