Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 13448|Yanıt: 5

Kırmızı zarfları bilimsel olarak nasıl kapılır: Yıl sonunda zengin olup kırmızı zarfları yakalamak için bir program yazabilirsiniz

[Bağlantıyı kopyala]
Yayınlandı 13.02.2015 22:44:10 | | | |
0×00 Arka Plan

Kırmızı zarflar nasıl? Kardeşinin oğlu Huer, "Para neredeyse karşılaştırılabilir. Kardeş ve kız Dao Yun, "Rüzgar yüzünden teyzem kadar iyi değil," dedi. "Herkes arka planı anlıyor, yeni yıl ve kırmızı zarfların gökyüzünde uçtuğu gün. Tesadüfen iki gün önce Python öğrendim ve daha heyecanlıydım, bu yüzden Weibo kırmızı zarflarının taranmasını inceledim, neden Alipay kırmızı zarfları yerine Weibo kırmızı zarflar kullandığını, çünkü sadece Web'i anlıyorum ve enerjim varsa, gelecekte whack-a-mole algoritmasını da inceleyebilirim.
Python'a yeni başlayan biri olduğum için, bu program aynı zamanda Python öğrendikten sonra yazdığım üçüncü program, bu yüzden kodda herhangi bir boşluk varsa lütfen şahsen kurtmayın, odak fikirde, eğer fikirde boşluk varsa, lütfen yüz yüze değmeyin, IE varsayılan tarayıcı olarak kendini ayarlayacak yüz yüzü var, ben de kötü bir makale yazıyorum kabul edilebilir......
Ben Python 2.7 kullanıyorum ve Python 2 ile Python 3 arasında büyük bir fark olduğu söyleniyor.
0×01 Fikirleri
Kelimelerle anlatacak kadar tembel değildim, bu yüzden bir eskiz çizdim ve herkes bunu anlayabilmeliydi.
Öncelikle, eski kural, önce faydalı olduğunu bilmediğiniz ama onsuz yapamayacağınız bir kütüphane tanıtın:
[mw_shl_code=java,true]import re import urllib import urllib2 import cookielib import base64 import binascii import os import json import sys import cPickle as p import rsa[/mw_shl_code] Sonra daha sonra kullanmanız gereken bazı değişkenleri belirtin:

[mw_shl_code=java,true]reload(sys)sys.setdefaultencoding('utf-8&') #将字符编码置为utf-8luckyList=[] #红包列表lowest=10 #能忍受红包领奖记录最低为多少[/mw_shl_code]Burada varsayılan olarak Python'da olmayan bir rsa kütüphanesi kullanılır. Kurulum yapmam gerekiyor :https://pypi.python.org/pypi/rsa/

İndirdikten sonra çalıştırın setpy.py kurulumu yapın, ardından geliştirme adımlarımıza başlayabiliriz.
0×02 Weibo girişi
Kırmızı zarfları yakalama işlemi giriş yaptıktan sonra yapılmalıdır, yani bir giriş fonksiyonu olmalı, giriş anahtar değil, anahtar çerezlerin korunmasıdır, burada cookielib iş birliği gereklidir.
[mw_shl_code=java,doğru]cj = cookielib. CookieJar()açıcı = urllib2.build_opener(urllib2. HTTPCookieProcessor(cj))urllib2.install_opener(opener)[/mw_shl_code] Bu şekilde, açıcı kullanan tüm ağ işlemleri çerezlerin durumunu yönetiyor, çok bilgim yok ama harika hissettiriyor.
Sonra, iki modülü kapsüllememiz gerekiyor; biri veri toplama modülü, ki sadece veri ALMAK için kullanılır, diğeri ise veriyi POST etmek için kullanılır.
[mw_shl_code=java,true]def getData(url) : try: req = urllib2. Request(url) result = opener.open(req) text = result.read() text=text.decode("utf-8").encode("gbk",'ignore') Exception hariç metni geri döndür, e:                print u' exception istisnesi, url: '+url print e def postData(url,data,header) : try: data = urllib.urlencode(data) req = urllib2. Request(url,data,header) sonuç = opener.open(req) metin = result.read() Exception hariç metni geri döndür, e: print u'İstisna iste, url: '+url[/mw_shl_code] Bu iki modülle veri GET ve POST yapabiliyoruz, bunlardan biri getData'nın kod çözme ve sonra kodlama yapmasının sebebi Win7'de hata ayıklama yaparken çıktıyı hep bozmam, bu yüzden bazı kodlama işlemleri ekledim, bunlar önemli değil, aşağıdaki giriş fonksiyonu Weibo girişinin çekirdeği.
[mw_shl_code=java,true]def login(nick, pwd): print u"----------login----------" print "----------......----------" prelogin_url= 'http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=%s&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.15)&_= 1400822309846' % nick preLogin = getData(prelogin_url) servertime = re.findall('"servertime":(.+?),' , preLogin)[0] pubkey = re.findall('"pubkey":"(.+?)",' , preLogin)[0] rsakv = re.findall('"rsakv":"(.+?)",' , preLogin)[0] nonce = re.findall('"nonce":"(.+?)",' , preLogin)[0] #print bytearray('xxxx','utf-8') su = base64.b64encode(urllib.quote(nick))        rsaPublickey= int(pubkey,16) key = rsa. PublicKey(rsaPublickey,65537) message = str(servertime) +'\t' + str(nonce) + '\n' + str(pwd) sp = binascii.b2a_hex(rsa.encrypt(message,key)) header = {'User-Agent' : 'Mozilla/5.0 (uyumlu; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'} param = { 'entry': 'weibo', 'gateway': '1', 'from': '', 'savestate': '7', 'userticket': '1',                'ssosimplelogin': '1', 'vsnf': '1', 'vsnval': '', 'su': su, 'service': 'miniblog', 'servertime': servertime, 'nonce': nonce, 'pwencode': 'rsa2', 'sp': sp, 'encoding': 'UTF-8', 'URL': 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack', 'returntype': 'META', 'rsakv' : rsakv, } s = postData('http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)',param,header) try: urll = re.findall("locatio remove n.replace\(\'(.+?) \'\); " , s)[0] login=getData(urll) print u"--------- Giriş başarılı! ------- "print" ----------......---------- "except Exception, e: print u" --------- giriş başarısız oldu! -------" baskı "----------......----------" çıkış(0)[/mw_shl_code]Bu parametreler ve şifreleme algoritmaları internetten kopyalanmış, çok iyi anlamıyorum, muhtemelen önce zaman damgası ve açık anahtar talep etmek, sonra rsa şifreleme ve son olarak işleme işlemi işleyip Sina giriş arayüzüne göndermek, Sina'dan başarılı bir giriş yaptıktan sonra bir Weibo adresi döndürecek, bunu talep etmeniz gerekiyor, böylece giriş durumu tamamen devreye girebiliyor, Başarılı giriş yaptıktan sonra, sonraki istekler mevcut kullanıcının çerezini taşıyacaktır.
0×03 Belirlenmiş kırmızı zarf çizimi
Weibo'ya başarılı bir şekilde giriş yaptıktan sonra, önce tarayıcıda denemek için kırmızı bir zarf bulmayı sabırsızlıkla bekliyorum. Sonunda, kırmızı bir zarf düğmesi olan bir sayfa buldum, F12 hata ayıklayıcıyı çağırdı ve veri paketinin ne istediğini gördü.

İstek adresinin http://huodong.weibo.com/aj_hongbao/getlucky olduğunu görebilirsiniz, iki ana parametre var, biri ouid, yani URL'de görülebilen kırmızı zarf kimliği, diğer paylaşma parametresi ise Weibo'ya paylaşım yapıp paylaşılmayacağını belirliyor ve bir _t ne için olduğunu bilmiyorum.
Tamam, teorik olarak, kırmızı zarfların çıkarılmasını bu URL'ye üç parametre göndererek tamamlayabilirsiniz, ancak parametreleri gerçekten gönderdiğinizde, sunucu sihirli bir şekilde sizin için böyle bir diziyi döndürecek:
[mw_shl_code=java, doğru] {"code":303403,"msg":"Üzgünüm, bu sayfaya erişim izniniz yok","data":[]}[/mw_shl_code] Şu anda panik yapma, uzun yılların web geliştirme deneyimime göre, karşı tarafın programcısı referansı değerlendirmeli, çok basit, geçmiş talebin tüm başlıklarını kopyala.
[mw_shl_code=java,true]def getLucky(id): #抽奖程序 print u"--- kırmızı zarf çiz:"+str(id)+"---" "----------......----------" yaz if checkValue(id)==False: #不符合条件, bu fonksiyon daha sonra döndürülecek        luckyUrl="http://huodong.weibo.com/aj_hongbao/getlucky" param={ 'ouid':id, 'share':0, '_t':0 } header= {                'cache-control':'no-cache', 'content-type':'application/x-www-form-urlencoded', 'origin':'http://huodong.weibo.com', 'pragma':'no-cache', 'referer': 'http://huodong.weibo.com/hongbao/'+str(id), 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, Gecko gibi) Chrome/33.0.1750.146 BIDUBrowser/6.x Safari/537.36', 'X-Requested-With':'XMLHttpRequest' } res = postData(luckyUrl,param, başlık)[/mw_shl_code] Bu durumda teoride bir sorun yoktur, ama aslında bir sorun yoktur. Piyango işlemi tamamlandıktan sonra durumu değerlendirmemiz gerekir ve geri dönen çözünürlük bir json dizisi; kod 100000 başarılı olur, 90114 ise bugünün piyangolarının üst sınırıdır ve diğer değerler de başarısız olur, yani:
[mw_shl_code=java,true]hbRes=json.loads(res)if hbRes["code"]=='901114': #今天红包已经抢完 print u"--------- üst sınıra ulaştı---------" yaz "----------......----------" log('lucky', str(id)+'---'+str(hbRes["code"])+'---'+hbRes["data"]["title"]) exit(0)elif hbRes["code"]=='100000':#成功 print u"---------Dili size refah diliyorum---------" print "----------......----------"        log('success',str(id)+'---'+res) exit(0) if hbRes["data"] and hbRes["data"]["title"]: print hbRes["data"]["title"] print "----------......----------" log('lucky', str(id)+'---'+str(hbRes["code"])+'---'+hbRes["data"]["title"])else: print u"---------Request error---------" print "----------......----------" log('lucky', str(id)+'---'+res)[/mw_shl_code], burada log da özelleştirdiğim bir fonksiyondur ve logları kaydetmek için kullanılır:
[mw_shl_code=java,true]def log(type,text): fp = open(type+'.txt','a') fp.write(text) fp.write('\r\n') fp.close()[/mw_shl_code]





Önceki:PHP yükleme maksimum limitleri hakkında notlar
Önümüzdeki:PHP5.2, 5.3, 5.4, 5.5 için memcache dll uzantısı indir
 Ev sahibi| Yayınlandı 13.02.2015 22:46:37 |
0×04 Kırmızı zarflar listesini tarama
Tek bir kırmızı zarf toplama eyleminin başarılı testi tamamlandıktan sonra, programımızın temel büyük taşınma modülü oluyor - kırmızı zarf listesini taramak, kırmızı zarf listesini taramak için birçok yöntem ve giriş olmalı, örneğin çeşitli Weibo arama anahtar kelimeleri gibi, ama ben burada en basit yöntemi kullanıyorum: kırmızı zarf listesini taramak.
Ana sayfada (kırmızı zarf aktivitesinin http://huodong.weibo.com/hongbao, çeşitli noktalardan daha fazlası gözlemlenebilir, liste çok bağlı olsa da, en zengin kırmızı zarf listesi hariç iki kategoriye ayrılabilir: tema ve liderlik tablosu.
F12'yi çağırmaya devam ederek, her iki sayfanın formatını analiz edin, öncelikle konusal formların listesiyle başlayalım, örneğin: http://huodong.weibo.com/hongbao/special_quyu
Kırmızı zarfın bilgisinin info_wrap adlı bir div'de olduğunu görebilirsiniz, bu yüzden sadece bu sayfanın kaynak kodunu etkinleştirmemiz, ardından tüm bilgi paketlerini almamız ve ardından bu sayfanın kırmızı zarf listesini almak için işliyoruz, burada bazı düzenli kullanıcılar kullanmamız gerekiyor:
[mw_shl_code=java,true]def getThemeList(url,p):#主题红包 print u"--------- "+str(p)+"page---------" print "----------......----------" html=getData(url+'?p='+str(p)) pWrap= re.compile(r'<div class="info_wrap">(.+?) <span class="rob_txt"></span>',re. DOTALL) #h Düzenli pInfo=re.compile(r'.+<em class="num">(.+)</em>.+<em class="num">(.+)</em>.+<em class="num">(.+) info_wrap alın.</em>.+href="(.+)" class="btn"',re. DOTALL) #获取红包信息 List=pWrap.findall(html,re. DOTALL) n=len(List) if n==0: i için aralık(n) içindeki dönüş: #traverse all info_wrap div s=pInfo.match(List) #取得红包信息 info=list(s.groups(0))                info[0]=float(info[0].replace('\xcd\xf2','0000')) #现金,ten->0000 try: info[1]=float(info[1].replace('\xcd\xf2','0000')) #礼品价值 except Exception, e:                        info[1]=float(info[1].replace('\xd2\xda','00000000')) #礼品价值 info[2]=float(info[2].replace('\xcd\xf2','0000')) #已发送 if info[2]==0: info[2]=1 #防止除数为0 if info[1]==0: info[1]=1 #防止除数为0 info.append(info[0]/(info[2]+info[1])) #红包价值, nakit/(talep edilenlerin sayısı + ödül değeri) # if info[0]/(info[2]+info[1])>100:                # url yaz luckyList.append(info) if 'class="page"' in html:#存在下一页 p=p+1 getThemeList(url,p) #递归调用自己爬取下一页[/mw_shl_code]Zor olduğunu söylemek çok zor ve bu iki cülleyi yazmak uzun zaman aldı. Buradaki bilgi ekinde [4] bir bilgi de var, bu benim algoritmam, kırmızı zarfların değerini kabaca değerlendirmek için kullanıyorum, neden bunu yapıyorsunuz, çünkü çok sayıda kırmızı zarf var ama sadece dört kez çekebiliyoruz, geniş çanta denizinde en değerli kırmızı zarfları bulup sonra çekmeliyiz, işte referans için üç veri: nakit değeri, hediye değeri ve alıcı sayısı, tabii ki nakit küçükse ve çok kişi alan kişi sayısı ya da ödülün değeri çok yüksekse (bazıları yüz milyonluk birimlerde bile çılgındır), O zaman almaya değmez, bu yüzden uzun süre geri kaldım ve sonunda kırmızı zarfların ağırlığını ölçmek için bir algoritma geliştirdim: kırmızı zarf değeri = nakit / (alıcı sayısı + ödül değeri).
Liderlik tablosu sayfasının prensibi aynıdır: anahtar etiketleri bulun ve düzenli olarak eşleştirin.
[mw_shl_code=java,true]def getTopList(url,daily,p):#排行榜红包 print u"--------- "+str(p)+"page---------" print "----------......----------" html=getData(url+'?daily='+str(daily)+'& p='+str(p)) pWrap=re.compile(r'<div class="list_info">(.+?) <span class="list_btn"></span>',re. DOTALL) #h Düzenli pInfo=re.compile(r'.+<em class="num">(.+)</em>.+<em class="num">(.+)</em>.+<em class="num">(.+) list_info alın.</em>.+href="(.+)" class="btn rob_btn"',re. DOTALL) #获取红包信息 List=pWrap.findall(html,re. DOTALL) n=len(List) if n==0: i için aralık(n) içindeki dönüş: tüm info_wrap div boyunca #Iterate s=pInfo.match(List) #取得红包信息 topinfo=list(s.groups(0))                info=list(topinfo) info[0]=topinfo[1].replace('\xd4\xaa','') #元->'' info[0]=float(info[0].replace('\xcd\xf2','0000')) #现金,10,>0000 info[1]=topinfo[2]. replace('\xd4\xaa','') #元->'' try: info[1]=float(info[1].replace('\xcd\xf2','0000')) #礼品价值 except Exception, e:                        info[1]=float(info[1].replace('\xd2\xda','0000000')) #礼品价值 info[2]=topinfo[0].replace('\xb8\xf6','') #个->'' info[2]=float(info[2].replace('\xcd\xf2','0000')) #已发送                if info[2]==0: info[2]=1 #防止除数为0 if info[1]==0: info[1]=1 #防止除数为0 info.append(info[0]/(info[2]+info[1])) #红包价值, nakit/(alıcı sayısı + hediye değeri)                # if info[0]/(info[2]+info[1])>100: # url yaz luckyList.append(info) if 'class="page"' in html:#存在下一页 p=p+1                getTopList(url,daily,p) #递归调用自己爬取下一页[/mw_shl_code]Tamam, şimdi iki özel sayfanın listesini başarıyla taramak ve sonraki adım, listeler listesini, yani tüm bu liste adreslerinin koleksiyonunu almak ve ardından onları tek tek yakalamak:
[mw_shl_code=java,true]def getList(): print u"---------Hedefi bul---------" print "----------......----------" themeUrl={ #主题列表 'theme':'http://huodong.weibo.com/hongbao/theme',                 'pinpai':'http://huodong.weibo.com/hongbao/special_pinpai', 'daka':'http://huodong.weibo.com/hongbao/special_daka', 'youxuan':'http://huodong.weibo. com/hongbao/special_youxuan', 'qiye':'http://huodong.weibo.com/hongbao/special_qiye', 'quyu':'http://huodong.weibo.com/hongbao/special_quyu', 'meiti':'http: huodong.weibo.com/hongbao/special_meiti', 'hezuo':'http://huodong.weibo.com/hongbao/special_hezuo' } topUrl={ #排行榜列表 'bestmoney':'http://huodong.weibo. com/hongbao/top_mostmoney', 'mostsend':'http://huodong.weibo.com/hongbao/top_mostsend', 'mostsenddaka':'http://huodong.weibo.com/hongbao/top_mostsenddaka',                'mostsendpartner':'http://huodong.weibo.com/hongbao/top_mostsendpartner', 'cate':'http://huodong.weibo.com/hongbao/cate?type=', 'clothes':'http://huodong.weibo.com/ hongbao/cate?type=clothes', 'beauty':'http://huodong.weibo.com/hongbao/cate?type=beauty', 'fast':'http://huodong.weibo.com/hongbao/cate?type=fast', 'life':'http: huodong.weibo.com/hongbao/cate?type=life', 'dijital':'http://huodong.weibo.com/hongbao/cate?type=digital', 'other':'http://huodong.weibo.com/hongbao/cate?type=other'                } için (theme,url) in themeUrl.items(): print "----------"+theme+"----------" print url print "----------......----------"                getThemeList(url,1) için (top,url) topUrl.items(): print "----------"+top+"----------" print url print "----------......----------"                getTopList(url,0,1) getTopList(url,1,1)[/mw_shl_code]
 Ev sahibi| Yayınlandı 13.02.2015 22:47:13 |
0×05 Kırmızı zarfların bulunabilirliği hakkında yargıç
Bu nispeten basit, önce kaynak kodunda anahtar kelimeleri arayıp kırmızı bir zarf tutma düğmesi olup olmadığını görün, sonra koleksiyon sıralamasına gidip en yüksek kaydı görebilirsiniz, en çok kaydı sadece birkaç dolar alırsa hoşça kal......
Koleksiyon kaydını görüntülemek için adres http://huodong.weibo.com/aj_hongbao/detailmore?page=1&type=2&_t=0&__rnd=1423744829265&uid=Red Envelope ID'dir

[mw_shl_code=java,true]def checkValue(id): infoUrl='http://huodong.weibo.com/hongbao/'+str(id) html=getData(infoUrl) if 'action-type="lottery"' in html veya True: #存在抢红包按钮                logUrl="http://huodong.weibo.com/aj_hongbao/detailmore?page=1&type=2&_t=0&__rnd=1423744829265&uid="+id #查看排行榜数据 param={} header= { 'Cache-Control': 'no-cache', 'Content-Type':'application/x-www-form-urlencoded', 'Pragma':'no-cache', 'Referer':'http://huodong.weibo.com/hongbao/detail? uid='+str(id), 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, Gecko gibi) Chrome/33.0.1750.146 BIDUBrowser/6.x Safari/537.36', 'X-Requested-With':'XMLHttpRequest' } çözünürlük = postData(logUrl,param,header) pMoney=re.compile(r'<span class="money">(\d+?. +?) \xd4\xaa</span>', re. DOTALL) #h Tüm list_info düzenli luckyLog=pMoney.findall(html,re. DOTALL) if len(luckyLog)==0: maxMoney=0 else: maxMoney=float(luckyLog[0]) if maxMoney <en düşük: #记录中最大红包小于设定值 geri dön Yanlış aksi: print u"--------- el yavaşla---------" baskı "----------......----------" geri false        return True[/mw_shl_code]0×06 Bitirme işleri
Ana modüller zaten yerinde ve artık tüm adımların seri olarak bağlanması gerekiyor:
[mw_shl_code=java,true]def start(username,password,low,fromFile): gl=False lowwest=low login(username , password) if fromfile=='y': if os.path.exists('luckyList.txt'):                         try: f = file('luckyList.txt') newList = [] newList = p.load(f)                                print u'--------- load list---------' print "----------......----------" hariç Exception, e: print u' yerel listeyi ayrıştıramadı, çevrimiçi sayfa tarayarak çıktı. ' print "----------......----------" gl=True else: print u' yerel olarak mevcut luckyList.txt tarayıcı çevrimiçi sayfalar değildir. ' print "----------......----------" gl=True if gl==True: getList() operatörden itemgetter                newList=sorted(luckyList, key=itemgetter(4),reverse=True) f = file('luckyList.txt', 'w') p.dump(newList, f) #把抓到的列表存到文件里, bu yüzden bir dahaki sefere lucky için f.close() yakalamana gerek yok newList: lucky[3]'te 'http://huodong.weibo.com' değilse: lucky[3]'te devam #不是红包 devam et, lucky[3] id=re.findall(r'(\w*[0-9]+)\w*',lucky[3])                getLucky(id[0])[/mw_shl_code] Kırmızı zarf listesini her test edildiğinde tekrar tekrar taramak çok zahmetli olduğu için, yerel listeyi okuyup gelecekte kırmızı zarfı alabilmeniz için dosya koduna tam listeyi dökmek için bir paragraf ekledim.
[mw_shl_code=java,true]if __name__ == "__main__": print u"------------------ Weibo Red Envelope Assistant------------------" print "---------------------v0.0.1---------------------" print u"------------- by @***----------------" "-------------------------------------------------" yaz dene: uname=raw_input(u"Lütfen Weibo hesabınızı girin: ".decode('utf-8').encode('gbk'))                pwd=raw_input(u"Lütfen Weibo şifrenizi girin: ".decode('utf-8').encode('gbk')) low=int(raw_input(u"Kırmızı zarf, n'den büyük nakit almak için en fazla nakit alın: ".decode('utf-8').encode('gbk')))))fromfile=raw_input(u) luckyList.txt'de kırmızı zarf listesini kullanıp kullanmayacağı: (y/n) ".decode('utf-8').encode('gbk')) hariç İstisna, e: print u" parametre hatası" print "----------......----------" print e                exit(0) print u"--------- program start---------" yaz "----------......----------" start(uname,pwd,low,fromfile) print u" --------- program sonu--------- "print "----------...... ----------" os.system('duraklatma')[/mw_shl_code]
0×07 Hadi gidelim!

0×07 Özeti
Temel tarayıcı iskeleti temelde tamamlandı, aslında bu tarayıcının birçok detayda oynayabileceği çok fazla alan var, örneğin toplu girişi destekleyecek şekilde değiştirmek, kırmızı zarf değer algoritmasını optimize etmek gibi, kodun kendisi de optimize edilecek çok yer olmalı, ama benim yeteneğimle bunu başarabileceğimi tahmin ediyorum.
Sonunda herkes programın sonucunu gördü, yüzlerce satır kod yazdım, binlerce kelime makale yazdım ve sadece iki renkli toplar seti elde ettim, Nima pit baba, nasıl iki renkli bir top olabilir!! (Anlatıcı: Yazar konuştukça o kadar heyecanlandı, gerçekten ağladı ve çevresindekiler ikna etti: Kardeşim, öyle değil, sadece bir Weibo kırmızı zarfı değil mi, dün ellerim ağrıyordu, WeChat kırmızı zarfını sallamadım.) )

Yayınlandı 14.02.2015 07:14:33 |
Loulou'da ne kadar para kazandın?
Yayınlandı 2.03.2016 13:48:27 |
Çok uzun görünüyor
Yayınlandı 7.03.2016 12:51:02 |
Ciddi mi bilmiyorum
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com