Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 13448|Jawab: 5

Cara mengambil amplop merah secara ilmiah: Di akhir tahun, Anda bisa menjadi kaya dan menulis program untuk mengambil amplop merah

[Salin tautan]
Diposting pada 13/02/2015 22.44.10 | | | |
0×00 Latar Belakang

Seperti apa amplop merahnya? Putra saudaranya, Huer, berkata, "Uangnya hampir sebanding. Kakak dan putri Dao Yun berkata, "Ini tidak sebagus bibiku karena angin." "Semua orang mengerti latar belakangnya, ini Tahun Baru, dan ini adalah hari ketika amplop merah beterbangan di seluruh langit. Kebetulan saya belajar Python dua hari yang lalu, dan saya lebih bersemangat, jadi saya mempelajari dan mempelajari merangkak amplop merah Weibo, mengapa amplop merah Weibo alih-alih amplop merah Alipay, karena saya hanya mengerti Web, dan jika saya memiliki energi, saya mungkin juga mempelajari algoritma whack-a-mole di masa depan.
Karena saya seorang pemula di Python, program ini juga merupakan program ketiga yang saya tulis setelah belajar Python, jadi tolong jangan menyodok secara langsung jika ada lubang dalam kode, fokusnya adalah pada idenya, yah, jika ada lubang dalam ide tersebut, tolong jangan menyodoknya secara langsung, Anda lihat IE memiliki wajah untuk mengatur dirinya sebagai browser default, saya menulis artikel sampah juga dapat diterima......
Saya menggunakan Python 2.7, dan dikatakan bahwa ada perbedaan besar antara Python 2 dan Python 3.
0×01 Ide
Saya terlalu malas untuk menggambarkannya dengan kata-kata, jadi saya menggambar sketsa, dan semua orang harus bisa memahaminya.
Pertama-tama, aturan lama, pertama-tama perkenalkan perpustakaan yang Anda tidak tahu berguna tetapi tidak dapat tanpanya:
[mw_shl_code=java,true]impor ulang impor urllib impor urllib2 impor cookielib impor base64 impor binascii impor os impor json impor sys impor cPickle as p impor rsa[/mw_shl_code] Kemudian deklarasikan beberapa variabel lain yang perlu Anda gunakan nanti:

[mw_shl_code=java,true]reload(sys)sys.setdefaultencoding('utf-8&') #将字符编码置为utf-8luckyList=[] #红包列表lowest=10 #能忍受红包领奖记录最低为多少[/mw_shl_code]Pustaka rsa digunakan di sini, yang tidak disertakan dalam Python secara default. Perlu menginstalnya :https://pypi.python.org/pypi/rsa/

Setelah mengunduhnya, jalankan setpy.py instal dan kemudian kita dapat memulai langkah-langkah pengembangan kita.
0×02 Login Weibo
Tindakan mengambil amplop merah harus dilakukan setelah masuk, sehingga harus ada fungsi login, login bukan kuncinya, kuncinya adalah pengawetan cookie, disini diperlukan kerja sama cookielib.
[mw_shl_code=java,true]cj = cookielib. CookieJar()opener = urllib2.build_opener(urllib2. HTTPCookieProcessor(cj))urllib2.install_opener(opener)[/mw_shl_code] Dengan cara ini, semua operasi jaringan yang menggunakan opener akan menangani status cookie, meskipun saya tidak tahu banyak tentang itu, tetapi rasanya luar biasa.
Selanjutnya, kita perlu merangkum dua modul, satu adalah modul akuisisi data, yang digunakan untuk MENDAPATKAN data, dan yang lainnya digunakan untuk POSTING data.
[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') mengembalikan teks kecuali Exception, e:                print u' request exception, url: '+url print e def postData(url,data,header) : try: data = urllib.urlencode(data) req = urllib2. Request(url,data,header) result = opener.open(req) text = result.read() mengembalikan teks kecuali Exception, e: print u'Request exception, url: '+url[/mw_shl_code] Dengan kedua modul ini, kita dapat GET dan POST data, di antaranya alasan mengapa getData memecahkan kode dan kemudian mengkodekan adalah karena di bawah Win7 saya selalu mengacaukan output saat debugging, jadi saya menambahkan beberapa pemrosesan pengkodean, ini bukan intinya, fungsi login di bawah ini adalah inti dari login Weibo.
[mw_shl_code=java,true]def login(nick, pwd): cetak u"----------login----------" cetak "----------......----------" 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 (kompatibel; 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, 'layanan': 'miniblog', 'servertime': servertime, 'nonce': nonce, 'pwencode': 'rsa2', 'sp': sp, 'pengkodean': '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"--------- Login berhasil! ------- "cetak" ----------......---------- "kecuali Pengecualian, e: cetak u" --------- login gagal! -------" cetak "----------......----------" exit(0)[/mw_shl_code]Parameter dan algoritme enkripsi dalam hal ini disalin dari Internet, saya tidak mengerti dengan baik, mungkin untuk meminta stempel waktu dan kunci publik terlebih dahulu, lalu enkripsi rsa dan terakhir memproses pemrosesan dan mengirimkannya ke antarmuka login Sina, setelah berhasil masuk dari Sina, itu akan mengembalikan alamat Weibo, Anda perlu memintanya, sehingga status login dapat berlaku sepenuhnya, Setelah berhasil login, permintaan berikutnya akan membawa cookie pengguna saat ini.
0×03 Gambar amplop merah yang ditunjuk
Setelah berhasil masuk ke Weibo, saya tidak sabar untuk menemukan amplop merah untuk mencobanya terlebih dahulu, tentu saja, terlebih dahulu di browser. Akhirnya, saya menemukan halaman dengan tombol amplop merah, F12 memanggil debugger untuk melihat apa yang diminta paket data.

Anda dapat melihat bahwa alamat permintaan adalah http://huodong.weibo.com/aj_hongbao/getlucky, ada dua parameter utama, satu adalah ouid, yaitu id amplop merah, yang dapat dilihat di URL, parameter berbagi lainnya menentukan apakah akan membagikannya ke Weibo, dan ada _t Saya tidak tahu untuk apa.
Oke, sekarang secara teoritis, Anda dapat menyelesaikan ekstraksi amplop merah dengan mengirimkan tiga parameter ke URL ini, tetapi ketika Anda benar-benar mengirimkan parameter, Anda akan menemukan bahwa server secara ajaib akan mengembalikan string seperti itu untuk Anda:
[mw_shl_code=java,true] {"code":303403,"msg":"Maaf, Anda tidak memiliki izin untuk mengakses halaman ini","data":[]}[/mw_shl_code] Jangan panik saat ini, menurut pengalaman pengembangan web saya selama bertahun-tahun, programmer pihak lain harus menilai perujuk, sangat sederhana, salin semua header dari permintaan sebelumnya.
[mw_shl_code=java,true]def getLucky(id): #抽奖程序 print u"--- gambar amplop merah dari:"+str(id)+"---" print "----------......----------" if checkValue(id)==False: #不符合条件, ini adalah fungsi yang dikembalikan nanti        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), 'Agen Pengguna':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/33.0.1750.146 BIDUBrowser/6.x Safari/537.36', 'X-Requested-With':'XMLHttpRequest' } res = postData(luckyUrl,param, header)[/mw_shl_code] Dalam hal ini, tidak ada masalah secara teori, tetapi sebenarnya tidak ada masalah. Setelah tindakan lotere selesai, kita perlu menilai statusnya, dan res yang dikembalikan adalah string json, di mana kodenya 100000 berhasil, dan jika 90114, itu adalah batas atas lotere hari ini, dan nilai lainnya juga gagal, jadi:
[mw_shl_code=java,true]hbRes=json.loads(res)if hbRes["code"]=='901114': #今天红包已经抢完 print u"--------- telah mencapai batas atas---------" print "----------......----------" log('lucky', str(id)+'---'+str(hbRes["code"])+'---'+hbRes["data"]["title"]) exit(0)elif hbRes["code"]=='100000':#成功 print u"---------Semoga Anda sejahtera---------" print "----------......----------"        log('success',str(id)+'---'+res) exit(0) if hbRes["data"] dan 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], di mana log juga merupakan fungsi yang saya sesuaikan, yang digunakan untuk merekam log:
[mw_shl_code=java,true]def log(jenis,teks): fp = open(type+'.txt','a') fp.write(text) fp.write('\r\n') fp.close()[/mw_shl_code]





Mantan:Catatan tentang batas maksimum unggahan PHP
Depan:Unduh ekstensi memcache dll untuk PHP5.2, 5.3, 5.4, 5.5
 Tuan tanah| Diposting pada 13/02/2015 22.46.37 |
0×04 Merayapi daftar amplop merah
Setelah pengujian berhasil dari satu tindakan pengumpulan amplop merah, ini adalah modul gerakan besar inti dari program kami - merangkak daftar amplop merah, harus ada banyak metode dan pintu masuk untuk merayapi daftar amplop merah, seperti berbagai kata kunci pencarian Weibo dan sebagainya, tetapi saya menggunakan metode paling sederhana di sini: merayapi daftar amplop merah.
Di beranda (http://huodong.weibo.com/hongbao aktivitas amplop merah, melalui berbagai poin lebih, semua dapat diamati, meskipun daftarnya banyak terhubung, dapat diringkas menjadi dua kategori (kecuali daftar amplop merah terkaya): tema dan papan peringkat.
Terus memanggil F12, analisis format kedua halaman, dimulai dengan daftar bentuk topikal, seperti: http://huodong.weibo.com/hongbao/special_quyu
Anda dapat melihat bahwa informasi amplop merah ada di div bernama info_wrap, jadi kita hanya perlu mengaktifkan kode sumber halaman ini, dan kemudian mengambil semua infowrap, dan kemudian cukup memprosesnya untuk mendapatkan daftar amplop merah halaman ini, di sini kita perlu menggunakan beberapa reguler:
[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 Dapatkan info_wrap pInfo=re.compile(r'.+<em class="num">(.+)</em>.+<em class="num">(.+)</em>.+<em class="num">(.+).</em>.+href="(.+)" class="btn"',re. DOTALL) #获取红包信息 List=pWrap.findall(html,re. DOTALL) n=len(Daftar) jika n==0: mengembalikan untuk i dalam range(n): #traverse semua 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')) #礼品价值 kecuali Pengecualian, e:                        info[1]=float(info[1].replace('\xd2\xda','000000000')) #礼品价值 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])) #红包价值, uang tunai/(jumlah penerima klaim + nilai hadiah) # if info[0]/(info[2]+info[1])>100:                # cetak url luckyList.append(info) jika 'class="page"' di html:#存在下一页 p=p+1 getThemeList(url,p) #递归调用自己爬取下一页[/mw_shl_code]Sangat sulit untuk mengatakan bahwa itu sangat sulit, dan butuh waktu lama untuk menulis dua kalimat ini. Ada juga info di info di sini lampiran [4], yang merupakan algoritma saya untuk menilai secara kasar nilai amplop merah, mengapa melakukan ini, karena ada banyak amplop merah tetapi kita hanya bisa menggambar empat kali, di lautan tas yang luas, kita harus menemukan amplop merah yang paling berharga dan kemudian menggambarnya, berikut adalah tiga data untuk referensi: nilai tunai, nilai hadiah dan jumlah penerima, jelas jika uang tunainya kecil dan jumlah orang yang menerima banyak orang atau nilai hadiahnya sangat tinggi (bahkan ada yang gila dalam satuan ratusan juta), Maka itu tidak layak untuk diambil, jadi saya menahan diri untuk waktu yang lama dan akhirnya menemukan algoritme untuk mengukur berat amplop merah: nilai amplop merah = uang tunai / (jumlah penerima + nilai hadiah).
Prinsip halaman papan peringkat adalah sama, temukan tag kunci, dan cocokkan secara teratur.
[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 Dapatkan list_info pInfo=re.compile(r'.+<em class="num">(.+)</em>.+<em class="num">(.+)</em>.+<em class="num">(.+).</em>.+href="(.+)" class="btn rob_btn"',re. DOTALL) #获取红包信息 List=pWrap.findall(html,re. DOTALL) n=len(Daftar) jika n==0: kembali untuk i dalam range(n): #Iterate melalui semua info_wrap div 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')) #礼品价值 kecuali Pengecualian, e:                        info[1]=float(info[1].replace('\xd2\xda','00000000')) #礼品价值 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])) #红包价值, uang tunai/(jumlah penerima + nilai hadiah)                # if info[0]/(info[2]+info[1])>100: # print url luckyList.append(info) if 'class="page"' di html:#存在下一页 p=p+1                getTopList(url,daily,p) #递归调用自己爬取下一页[/mw_shl_code]Oke, sekarang kita dapat berhasil merayapi daftar dua halaman khusus, dan langkah selanjutnya adalah mendapatkan daftar daftar, yaitu kumpulan semua alamat daftar ini, dan kemudian mengambilnya satu per satu:
[mw_shl_code=java,true]def getList(): print u"---------Find target---------" 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={ #排行榜列表 'mostmoney':'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=', 'pakaian':'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', 'digital':'http://huodong.weibo.com/hongbao/cate?type=digital', 'other':'http://huodong.weibo.com/hongbao/cate?type=other'                } untuk (theme,url) di themeUrl.items(): cetak "----------"+theme+"----------" cetak url cetak "----------......----------"                getThemeList(url,1) untuk (top,url) di topUrl.items(): cetak "----------"+top+"----------" cetak url cetak "----------......----------"                getTopList(url,0,1) getTopList(url,1,1)[/mw_shl_code]
 Tuan tanah| Diposting pada 13/02/2015 22.47.13 |
0×05 Menilai ketersediaan amplop merah
Ini relatif sederhana, pertama-tama cari kata kunci dalam kode sumber untuk melihat apakah ada tombol ambil amplop merah, lalu buka peringkat koleksi untuk melihat apa rekor tertinggi, jika yang terbanyak hanya menerima beberapa dolar, selamat tinggal......
Alamat untuk melihat catatan koleksi adalah http://huodong.weibo.com/aj_hongbao/detailmore?page=1&type=2&_t=0&__rnd=1423744829265&uid=Red ID Amplop

[mw_shl_code=java,true]def checkValue(id): infoUrl='http://huodong.weibo.com/hongbao/'+str(id) html=getData(infoUrl) if 'action-type="lottery"' dalam html atau 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), 'Agen Pengguna':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/33.0.1750.146 BIDUBrowser/6.x Safari/537.36', 'X-Requested-With':'XMLHttpRequest' } res = postData(logUrl,param,header) pMoney=re.compile(r'<span class="money">(\d+?. +?) \xd4\xaa'</span>,re. DOTALL) #h Dapatkan semua pelanggan tetap list_info luckyLog=pMoney.findall(html,re. DOTALL) if len(luckyLog)==0: maxMoney=0 else: maxMoney=float(luckyLog[0]) if maxMoney <terendah: #记录中最大红包小于设定值 mengembalikan False else: print u"--------- tangan melambat---------" cetak "----------......----------" mengembalikan false        mengembalikan True[/mw_shl_code]0×06 Pekerjaan penyelesaian
Modul utama sudah ada, dan sekarang semua langkah perlu dihubungkan secara seri:
[mw_shl_code=java,true]def start(username,password,low,fromFile): gl=False lowest=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 "----------......----------" kecuali Exception, e: print u' gagal mengurai daftar lokal, merayapi halaman online. ' print "----------......----------" gl=True else: print u' tidak ada secara lokal luckyList.txt halaman online yang merayap. ' print "----------......----------" gl=True if gl==True: getList() dari operator impor itemgetter                newList=sorted(luckyList, key=itemgetter(4),reverse=True) f = file('luckyList.txt', 'w') p.dump(newList, f) #把抓到的列表存到文件里, jadi Anda tidak perlu menangkap f.close() untuk beruntung di lain waktu newList: jika bukan 'http://huodong.weibo.com' di lucky[3]: #不是红包 lanjutkan cetak lucky[3] id=re.findall(r'(\w*[0-9]+)\w*',lucky[3])                getLucky(id[0])[/mw_shl_code] Karena sangat merepotkan untuk merayapi daftar amplop merah berulang kali setiap kali diuji, saya menambahkan paragraf untuk membuang daftar lengkap ke dalam kode file, sehingga Anda dapat membaca daftar lokal dan mengambil amplop merah di masa mendatang.
[mw_shl_code=java,true]if __name__ == "__main__": print u"------------------ Weibo Red Envelope Assistant------------------" print "---------------------v0.0.1---------------------" print u"------------- oleh @***----------------" cetak "-------------------------------------------------" coba: uname=raw_input(u"Silakan masukkan akun Weibo Anda: ".decode('utf-8').encode('gbk'))                pwd=raw_input(u"Silakan masukkan kata sandi Weibo Anda: ".decode('utf-8').encode('gbk')) low=int(raw_input(u"Amplop merah untuk menerima uang tunai maksimum lebih besar dari n: ".decode('utf-8').encode('gbk')))) fromfile=raw_input(u) Apakah akan menggunakan daftar amplop merah di luckyList.txt: (y/n) ".decode('utf-8').encode('gbk')) kecuali Pengecualian, e: print u" parameter error" print "----------......----------" print e                Exit(0) Print U"--------- program start---------" print "----------......----------" start(uname,pwd,low,fromfile) print u" --------- program end--------- "print "----------...... ----------" os.system('jeda')[/mw_shl_code]
0×07 Ayo pergi!

0×07 Ringkasan
Kerangka crawler dasar pada dasarnya telah selesai, pada kenyataannya, masih banyak ruang bagi crawler ini untuk bermain dalam banyak detail, seperti memodifikasinya untuk mendukung login batch, seperti mengoptimalkan algoritma nilai amplop merah, kode itu sendiri juga harus memiliki banyak tempat untuk dioptimalkan, tetapi dengan kemampuan saya, saya memperkirakan bahwa saya bisa mendapatkan ini.
Pada akhirnya, semua orang melihat hasil dari program ini, saya menulis ratusan baris kode, ribuan kata artikel, dan yang saya dapatkan hanyalah satu set bola dua warna, Nima pit dad, bagaimana bisa menjadi bola dua warna !! (Narator: Semakin banyak penulis berbicara, semakin bersemangat dia, dan dia benar-benar menangis, dan orang-orang di sekitarnya membujuk: Saudaraku, tidak seperti itu, bukankah itu hanya amplop merah Weibo, kemarin tangan saya sakit, dan saya tidak mengibaskan amplop merah WeChat.) )

Diposting pada 14/02/2015 07.14.33 |
Berapa banyak uang yang Anda ambil di Loulou?
Diposting pada 02/03/2016 13.48.27 |
Terlihat sangat tinggi
Diposting pada 07/03/2016 12.51.02 |
Saya tidak tahu apakah itu serius
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com