Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 13448|Odpoveď: 5

Ako chytiť červené obálky vedecky: Na konci roka môžete zbohatnúť a napísať program na získanie červených obálok

[Kopírovať odkaz]
Zverejnené 13. 2. 2015 22:44:10 | | | |
0×00 Pozadie

Aké sú tie červené obálky? Syn jeho brata, Huer, povedal: "Peniaze sú takmer porovnateľné. Brat a dcéra Dao Yun povedali: "Nie je to také dobré ako u mojej tety kvôli vetru." "Všetci chápu pozadie, je Nový rok a je deň, keď červené obálky lietajú po celej oblohe. Práve sa stalo, že som sa pred dvoma dňami naučil Python a bol som viac nadšený, tak som študoval a študoval prehľadávanie Weibo červených obálok, prečo Weibo červené obálky namiesto Alipay červených, pretože rozumiem len webu, a ak budem mať energiu, možno sa v budúcnosti venujem aj algoritmu whack-a-mole.
Keďže som začiatočník v Pythone, tento program je tiež tretí program, ktorý som napísal po tom, čo som sa naučil Python, takže prosím, nepýtajte sa osobne, ak je v kóde nejaká chyba, zameranie je na samotnú myšlienku, no, ak je v nápade nejaká chyba, prosím, nerobte to osobne, vidíte, IE má tvár na to, aby sa nastavil ako predvolený prehliadač, a ak napíšem nekvalitný článok, je to tiež v poriadku......
Používam Python 2.7 a hovorí sa, že medzi Pythonom 2 a Pythonom 3 je veľký rozdiel.
0×01 Nápady
Bol som príliš lenivý to opísať slovami, tak som nakreslil skicu a každý by to mal vedieť pochopiť.
V prvom rade staré pravidlo, najprv predstavte knižnicu, o ktorej neviete, že je užitočná, ale bez nej sa nemôžete zaobísť:
[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] Potom deklarujte ďalšie premenné, ktoré budete musieť neskôr použiť:

[mw_shl_code=java,true]reload(sys)sys.setdefaultencoding('utf-8&') #将字符编码置为utf-8luckyList=[] #红包列表lowest=10 #能忍受红包领奖记录最低为多少[/mw_shl_code]Tu sa používa knižnica rsa, ktorá nie je v Pythone štandardne zahrnutá. Musím to nainštalovať :https://pypi.python.org/pypi/rsa/

Po stiahnutí spustiť setpy.py nainštalovať a potom môžeme začať vývojové kroky.
Prihlásenie na Weibo 0×02
Akcia uchopenia červených obálok musí byť vykonaná po prihlásení, takže musí existovať prihlasovacia funkcia, prihlásenie nie je kľúč, kľúčom je uchovávanie cookies, tu je potrebná spolupráca cookielib.
[mw_shl_code=java,true]cj = cookielib. CookieJar()opener = urllib2.build_opener(urllib2. HTTPCookieProcessor(cj))urllib2.install_opener(opener)[/mw_shl_code] Týmto spôsobom všetky sieťové operácie pomocou otvárača spracujú stav cookies, hoci o tom veľa neviem, ale je to úžasný pocit.
Ďalej musíme zapuzdriť dva moduly, jeden je modul na získavanie dát, ktorý slúži len na získavanie dát, a druhý na POST dát.
[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') vráť text okrem výnimky, 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) výsledok = opener.open(req) text = result.read() vráť text okrem výnimky, e: print u'Request exception, url: '+url[/mw_shl_code] S týmito dvoma modulmi môžeme GET a POST dáta GET, pričom dôvod, prečo getData dekóduje a potom kóduje, je ten, že pod Win7 som pri ladení vždy skreslil výstup, tak som pridal nejaké spracovanie kódovania, ale to nie je podstatné, funkcia prihlásenia nižšie je jadrom Weibo prihlásenia.
[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) správa = str(servertime) +'\t' + str(nonce) + '\n' + str(pwd) sp = binascii.b2a_hex(rsa.encrypt(message,key)) hlavička = {'User-Agent' : 'Mozilla/5.0 (kompatibilné; 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"--------- Prihlásenie úspešné! ------- "print" ----------......---------- "okrem výnimky, e: print u" --------- prihlásenie zlyhalo! -------" vytlačiť "----------......----------" exit(0)[/mw_shl_code] Parametre a šifrovacie algoritmy v tomto sú skopírované z internetu, veľmi tomu nerozumiem, pravdepodobne ide najprv o požiadanie o časovú pečiatku a verejný kľúč, potom o RSA šifrovanie a nakoniec spracovanie a odoslanie do prihlasovacieho rozhrania Sina, po úspešnom prihlásení zo Sina vráti Weibo adresu, ktorú musíte požiadať, aby sa stav prihlásenia mohol úplne uplatniť, Po úspešnom prihlásení budú ďalšie požiadavky obsahovať cookies aktuálneho používateľa.
0×03 Označený červený obálkový výkres
Po úspešnom prihlásení na Weibo sa už neviem dočkať, kedy nájdem červenú obálku, ktorú si môžem najskôr vyskúšať, samozrejme najprv v prehliadači. Nakoniec som našiel stránku s červeným tlačidlom obálky, F12 vyvolal debugger, aby zistil, čo dátový paket požaduje.

Vidíte, že adresa požiadavky je http://huodong.weibo.com/aj_hongbao/getlucky, sú tam dva hlavné parametre, jeden je ouid, teda červené ID obálky, ktoré je viditeľné v URL, druhý parameter share určuje, či ho zdieľať na Weibo, a je tu _t neviem, na čo slúži.
Dobre, teoreticky môžete extrakciu červených obálok dokončiť zadaním troch parametrov do tejto URL, ale keď parametre skutočne odáte, server vám zázračne vráti takýto reťazec:
[mw_shl_code=java, pravda] {"code":303403,"msg":"Prepáčte, nemáte povolenie na prístup na túto stránku","data":[]}[/mw_shl_code] Nepanikárte teraz, podľa mojich mnohých skúseností s webovým vývojom by mal programátor druhej strany posúdiť referer, veľmi jednoducho, skopírovať všetky hlavičky predchádzajúcej požiadavky.
[mw_shl_code=java,true]def getLucky(id): #抽奖程序 print u"--- draw red envelope from:"+str(id)+"---" print "----------......----------" if checkValue(id)==False: #不符合条件, toto je funkcia return neskôr        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, podobne ako Gecko) Chrome/33.0.1750.146 BIDUBrowser/6.x Safari/537.36', 'X-Requested-With':'XMLHttpRequest' } res = postData(luckyUrl,param, hlavička)[/mw_shl_code] V tomto prípade teoreticky nie je problém, ale v skutočnosti žiadny problém neexistuje. Po dokončení lotériovej akcie musíme posúdiť stav a vrátený res je json reťazec, kde kód je 100000 je úspešný, a ak je to 90114, je to horná hranica dnešnej lotérie a ostatné hodnoty sú tiež neúspešné, takže:
[mw_shl_code=java,true]hbRes=json.loads(res)if hbRes["code"]=='901114': #今天红包已经抢完 print u"--------- dosiahol hornú hranicu---------" print "----------......----------" log('lucky', str(id)+'---'+str(hbRes["code"])+'---'+hbRes["data"]["title"]) exit(0)elif hbRes["code"]=='100000':#成功 print u"---------Prajeme ti šťastie---------" print "----------......----------"        log('success',str(id)+'---'+res) exit(0) if hbRes["data"] a 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], kde log je tiež funkcia, ktorú prispôsobujem a ktorá sa používa na zaznamenávanie logov:
[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]





Predchádzajúci:Poznámky k maximálnym limitom nahrávania PHP
Budúci:Memcache DLL rozšírenie na stiahnutie pre PHP5.2, 5.3, 5.4, 5.5
 Prenajímateľ| Zverejnené 13. 2. 2015 22:46:37 |
0×04 Prehľadajte zoznam červených obálok
Po úspešnom teste jednej akcie zberu červených obálok je to jadro modulu veľkého pohybu nášho programu – prehľadávanie zoznamu červených obálok, malo by existovať mnoho metód a vstupov na prehľadávanie zoznamu červených obálok, napríklad rôzne kľúčové slová na Weibo vyhľadávanie a podobne, ale ja používam najjednoduchšiu metódu: prehľadávanie zoznamu červených obálok.
Na domovskej stránke (http://huodong.weibo.com/hongbao aktivity s červenými obálkami, cez rôzne ďalšie body, je možné všetko pozorovať, hoci je zoznam veľmi prepojený, dá sa zhrnúť do dvoch kategórií (okrem najbohatšieho zoznamu červených obálok): téma a rebríček.
Pokračujúc v vyvolávaní F12, analyzuj formát oboch strán, začínajúc zoznamom tematických foriem, napríklad: http://huodong.weibo.com/hongbao/special_quyu
Vidíte, že informácie o červenej obálke sú v dive s názvom info_wrap, takže stačí aktivovať zdrojový kód tejto stránky, potom získať všetky infowrapy a jednoducho ich spracovať, aby sme získali červený zoznam obálok tejto stránky, tu potrebujeme použiť niektoré regulárne čísla:
[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 Získajte info_wrap bežnej 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(List) ak n==0: vráť pre i v rozsahu(n): #traverse všetkých 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')) #礼品价值 okrem výnimky, 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 ak info[1]==0: info[1]=1 #防止除数为0 info.append(info[0]/(info[2]+info[1])) #红包价值, hotovosť/(počet získaných + hodnota výhry) # ak info[0]/(info[2]+info[1])>100:                # print url luckyList.append(info) if 'class="page"' v html:#存在下一页 p=p+1 getThemeList(url,p) #递归调用自己爬取下一页[/mw_shl_code]Je veľmi ťažké povedať, že je to také ťažké, a trvalo dlho napísať tieto dve vety. V prílohe info [4] je tiež informácia, ktorá je mojím algoritmom na približné posúdenie hodnoty červených obálok, prečo to robiť, pretože červených obálok je veľa, ale môžeme ťahať len štyrikrát, v obrovskom mori tašiek musíme nájsť tie najhodnotnejšie červené obálky a potom ich nakresliť, tu sú tri údaje na referenciu: hotovostná hodnota, hodnota daru a počet príjemcov, samozrejme, ak je hotovosť malá a počet ľudí, ktorí dostanú veľa ľudí, alebo hodnota ceny je veľmi vysoká (niektoré sú dokonca šialené v jednotkách stoviek miliónov), Potom už nestojí za to ju brať, tak som dlho váhal a nakoniec som vymyslel algoritmus na meranie hmotnosti červených obálok: hodnota červenej obálky = hotovosť / (počet príjemcov + hodnota ceny).
Princíp stránky rebríčka je rovnaký – nájdite kľúčové tagy a pravidelne ich párujte.
[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 Get list_info bežnej 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(List) ak n==0: vráť pre i v rozsahu(n): #Iterate cez všetky info_wrap div s=pInfo.match(List) #取得红包信息 topinfo=list(s.groups(0))                info=zoznam(topinfo) info[0]=topinfo[1].nahradiť('\xd4\xaa','') #元->'' info[0]=float(info[0].nahradiť('\xcd\xf2','0000')) #现金,10,>0000 info[1]=topinfo[2]. replace('\xd4\xaa','') #元->'' try: info[1]=float(info[1].replace('\xcd\xf2','0000')) #礼品价值 okrem výnimky, 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])) #红包价值, hotovosť/(počet príjemcov + hodnota daru)                # ak info[0]/(info[2]+info[1])>100: # print url luckyList.append(info) if 'class="page"' v html:#存在下一页 p=p+1                getTopList(url,daily,p) #递归调用自己爬取下一页[/mw_shl_code]Dobre, teraz môžeme úspešne prehľadávať zoznam týchto dvoch špeciálnych stránok a ďalším krokom je získať zoznam zoznamov, teda kolekciu všetkých týchto adries zoznamov, a potom ich postupne prečítať:
[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=', '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', 'digital':'http://huodong.weibo.com/hongbao/cate?type=digital', 'other':'http://huodong.weibo.com/hongbao/cate?type=other'                } pre (theme,url) v themeUrl.items(): tlač "----------"+theme+"----------" tlač URL tlač "----------......----------"                getThemeList(url,1) pre (top,url) v topUrl.items(): print "----------"+top+"----------" print url print "----------......----------"                getTopList(url,0,1) getTopList(url,1,1)[/mw_shl_code]
 Prenajímateľ| Zverejnené 13. 2. 2015 22:47:13 |
0×05 Posúdiť dostupnosť červených obálok
Je to relatívne jednoduché, najprv vyhľadajte kľúčové slová v zdrojovom kóde, či tam nie je červené tlačidlo na uchopenie obálky, a potom prejdite na rebríček kolekcie, kde je najvyšší rekord, ak najviac dostane len pár dolárov, zbohom......
Adresa na zobrazenie záznamu o zbierke je http://huodong.weibo.com/aj_hongbao/detailmore?page=1&type=2&_t=0&__rnd=1423744829265&uid=Red Envelope ID

[mw_shl_code=java,true]def checkValue(id): infoUrl='http://huodong.weibo.com/hongbao/'+str(id) html=getData(infoUrl) if 'action-type="lottery"' v html alebo 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, podobne ako 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 Získajte všetkých list_info pravidelných luckyLog=pMoney.findall(html,re. DOTALL) ak len(luckyLog)==0: maxMoney=0 inak: maxMoney=float(luckyLog[0]) if maxMoney <najnižšie: #记录中最大红包小于设定值 vrátiť False else: print u"--------- ruka spomaľuje---------" print "----------......----------" return false        return True[/mw_shl_code]0×06 Dokončovacie práce
Hlavné moduly sú už na mieste a teraz je potrebné všetky kroky prepojiť do série:
[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 = súbor('luckyList.txt') newList = [] newList = p.load(f)                                print u'--------- load list---------' tlačiť "----------......----------" okrem výnimky, e: print u' sa nepodarilo spracovať lokálny zoznam, čo spustilo online stránku. ' print "----------......----------" gl=True else: print u' neexistuje lokálne luckyList.txt prehľadávajúcich online stránok. ' print "----------......----------" gl=True, ak gl==True: getList() z importu operátora itemgetter                newList=sorted(luckyList, key=itemgetter(4),reverse=True) f = file('luckyList.txt', 'w') p.dump(newList, f) #把抓到的列表存到文件里, takže nabudúce nemusíš chytať f.close() pre šťastie newList: ak nie 'http://huodong.weibo.com' v lucky[3]: #不是红包 pokračovať v tlači lucky[3] id=re.findall(r'(\w*[0-9]+)\w*',lucky[3])                getLucky(id[0])[/mw_shl_code] Keďže je veľmi nepraktické opakovane prehľadávať zoznam červených obálok pri každom testovaní, pridal som odsek, aby sa celý zoznam vložil do kódu súboru, aby ste si mohli prečítať lokálny zoznam a v budúcnosti si červenú obálku vyzdvihnúť.
[mw_shl_code=java,true]ak __name__ == "__main__": print u"------------------ Weibo Red Envelope Assistant------------------" print "---------------------v0.0.1---------------------" print u"------------- od @***----------------" tlačiť "-------------------------------------------------" try: uname=raw_input(u" Prosím, zadajte svoj účet na Weibo: ".decode('utf-8').encode('gbk'))                pwd=raw_input(u"Prosím, zadajte svoje heslo na Weibo: ".decode('utf-8').encode('gbk')) low=int(raw_input(u"Červená obálka na prijatie maximálnej hotovosti väčšej ako n: ".decode('utf-8')).encode('gbk')))) fromfile=raw_input(u) Či použiť červený zoznam obálok v luckyList.txt: (y/n) ".decode('utf-8').encode('gbk')) okrem výnimky, e: print u" parameter error" print "----------......----------" print e                exit(0) print u"--------- program štart---------" print "----------......----------" štart(uname,pwd, low, fromfile) print u" --------- koniec programu--------- "print "----------...... ----------" os.system('pauza')[/mw_shl_code]
0×07 Poďme!

0×07 Zhrnutie
Základná kostra crawleru je v podstate dokončená, v skutočnosti je stále veľa priestoru pre tento crawler v mnohých detailoch, ako je úprava na podporu dávkového prihlásenia, optimalizácia algoritmu hodnoty červeného obálky, samotný kód by mal mať tiež veľa miest na optimalizáciu, ale s mojimi schopnosťami odhadujem, že to dokážem.
Nakoniec všetci videli výsledok programu, napísal som stovky riadkov kódu, tisíce slov článkov a všetko, na čo som tvrdo pracoval, bola sada dvojfarebných loptičiek, Nima pit dad, ako by to mohla byť dvojfarebná guľa!! (Rozprávač: Čím viac autor rozprával, tým viac bol nadšený, a naozaj plakal, a ľudia okolo neho ho presviedčali: Brat, nie je to tak, nie je to len Weibo červená obálka, včera ma boleli ruky a nevytriasol som červenú WeChat obálku.) )

Zverejnené 14. 2. 2015 7:14:33 |
Koľko peňazí si zobral v Loulou?
Zverejnené 2. 3. 2016 13:48:27 |
Vyzerá tak vysoký
Zverejnené 7. 3. 2016 12:51:02 |
Neviem, či je to vážne
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com