Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 13448|Antwoord: 5

Hoe je wetenschappelijk rode enveloppen pakt: Aan het einde van het jaar kun je rijk worden en een programma schrijven om rode enveloppen te pakken

[Link kopiëren]
Geplaatst op 13-02-2015 22:44:10 | | | |
0×00 Achtergrond

Hoe zijn de rode enveloppen? De zoon van zijn broer, Huer, zei: "Het geld is bijna vergelijkbaar. De broer en dochter Dao Yun zeiden: "Het is niet zo goed als mijn tante vanwege de wind." "Iedereen begrijpt de achtergrond, het is het nieuwe jaar, en het is de dag waarop rode enveloppen overal aan de hemel vliegen. Het toeval wilde dat ik twee dagen geleden Python heb geleerd, en ik was enthousiaster, dus heb ik het kruipen van Weibo rode enveloppen bestudeerd, waarom Weibo rode enveloppen in plaats van Alipay rode enveloppen, omdat ik alleen het web begrijp, en als ik de energie heb, misschien ook het whack-a-mole algoritme in de toekomst bestudeer.
Omdat ik een beginner ben in Python, is dit ook het derde programma dat ik schreef nadat ik Python had geleerd, dus grap alsjeblieft niet persoonlijk of er een put in de code zit, de focus ligt op het idee, nou, als er een put in zit, prikje er dan niet persoonlijk in, je ziet dat IE zichzelf als standaardbrowser kan instellen, ik schrijf een slecht artikel is ook acceptabel......
Ik gebruik Python 2.7, en er wordt gezegd dat er een groot verschil is tussen Python 2 en Python 3.
0×01 Ideeën
Ik was te lui om het in woorden te beschrijven, dus maakte ik een schets, en iedereen zou het moeten begrijpen.
Allereerst de oude regel: introduceer eerst een bibliotheek waarvan je niet weet dat die nuttig is, maar waar je niet zonder kunt:
[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] Verklaar vervolgens nog wat andere variabelen die je later moet gebruiken:

[mw_shl_code=java,true]reload(sys)sys.setdefaultencoding('utf-8&') #将字符编码置为utf-8luckyList=[] #红包列表lowest=10 #能忍受红包领奖记录最低为多少[/mw_shl_code]Hier wordt een rsa-bibliotheek gebruikt, die standaard niet in Python is opgenomen. Moet het installeren :https://pypi.python.org/pypi/rsa/

Na het downloaden setpy.py installatie uitvoeren en dan kunnen we beginnen met de ontwikkelprocessen.
0×02 Weibo-login
De handeling van het pakken van rode enveloppen moet na het inloggen worden uitgevoerd, dus er moet een inlogfunctie zijn; inloggen is niet de sleutel, de sleutel is het bewaren van cookies, hier is de medewerking van cookielib vereist.
[mw_shl_code=Java,True]CJ = cookielib. CookieJar()opener = urllib2.build_opener(urllib2. HTTPCookieProcessor(cj))urllib2.install_opener(opener)[/mw_shl_code] Op deze manier zullen alle netwerkoperaties met opener de status van cookies afhandelen, hoewel ik er niet veel van weet, maar het voelt geweldig.
Vervolgens moeten we twee modules inkapselen: één is de data-acquisitiemodule, die simpelweg wordt gebruikt om data te VERKRIJGEN, en de andere om data te POSTEN.
[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",'negeer') retour tekst behalve uitzondering, 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() retour tekst behalve uitzondering, e: print u'Request exception, url: '+url[/mw_shl_code] Met deze twee modules kunnen we data KRIJGEN en POSTEN, waarvan de reden waarom getData decodeert en vervolgens codeert is omdat ik onder Win7 altijd de output verwar bij het debuggen, dus heb ik wat coderingsverwerking toegevoegd, maar dat is niet het punt, de inlogfunctie hieronder is de kern van Weibo-login.
[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 (compatibel; 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"--------- Login geslaagd! ------- "print" ----------......---------- "behalve uitzondering, bijv: print u" --------- login mislukt! -------" print "----------......----------" exit(0)[/mw_shl_code] De parameters en encryptie-algoritmen hierin zijn gekopieerd van het internet, ik begrijp het niet zo goed, waarschijnlijk is het om eerst een tijdstempel en publieke sleutel aan te vragen, dan rsa-encryptie en uiteindelijk de verwerking te verwerken en deze in te dienen bij de Sina logininterface, na succesvol inloggen vanuit Sina geeft het een Weibo-adres terug, je moet het aanvragen zodat de loginstatus volledig van kracht kan worden, Na succesvolle login zullen volgende verzoeken de cookie van de huidige gebruiker bevatten.
0×03 Aangewezen rode enveloppetekening
Na succesvol in te loggen op Weibo, kan ik niet wachten om eerst een rode envelop te vinden om het eerst te proberen, natuurlijk eerst in de browser. Uiteindelijk vond ik een pagina met een rode envelopknop, F12 riep de debugger op om te zien wat het datapakket opvroeg.

Je kunt zien dat het adres van het verzoek http://huodong.weibo.com/aj_hongbao/getlucky is, er zijn twee hoofdparameters: één is ouid, dat wil zeggen het rode envelope id, dat is te zien in de URL, de andere share-parameter bepaalt of het gedeeld moet worden naar Weibo, en er is een _t waar ik niet weet waar het voor is.
Oké, theoretisch kun je de extractie van rode enveloppen voltooien door drie parameters aan deze URL te geven, maar wanneer je de parameters daadwerkelijk invoert, zul je merken dat de server op magische wijze zo'n string voor je teruggeeft:
[mw_shl_code=Java, waar] {"code":303403,"msg":"Sorry, je hebt geen toestemming om deze pagina te openen","data":[]}[/mw_shl_code] Raak nu niet in paniek, volgens mijn jarenlange ervaring in webontwikkeling zou de programmeur van de andere partij de referer moeten beoordelen, heel simpel, kopieer alle headers van het vorige verzoek.
[mw_shl_code=java,true]def getLucky(id): #抽奖程序 print u"--- teken rode envelop van:"+str(id)+"---" print "----------......----------" als checkValue(id)==False: #不符合条件, dit is de functie return later        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, zoals Gecko) Chrome/33.0.1750.146 BIDUBrowser/6.x Safari/537.36', 'X-Requested-With':'XMLHttpRequest' } res = postData(luckyUrl,param, header)[/mw_shl_code] In dit geval is er in theorie geen probleem, maar in feite is er geen probleem. Nadat de loterijactie is voltooid, moeten we de status beoordelen, en de teruggegeven res is een json-string, waarbij de code 100000 succesvol is, en als het 90114 is, is dit de bovengrens van de huidige loterij, en de andere waarden zijn ook mislukt, dus:
[mw_shl_code=java,true]hbRes=json.loads(res)if hbRes["code"]=='901114': #今天红包已经抢完 print u"--------- heeft de bovengrens bereikt---------" print "----------......----------" log('lucky', str(id)+'---'+str(hbRes["code"])+'---'+hbRes["data"]["title"]) exit(0)elif hbRes["code"]=='100000':#成功 print u"---------Wishing you prosperity---------" print "----------......----------"        log('succes',str(id)+'---'+res) exit(0) if hbRes["data"] en hbRes["data"]["title"]: print hbRes["data"]["title"] print "----------......----------" log('lucky', str(id)+'---'+str(hbRes["code"])+'---'+hbRes["data"]["title"])anders: print u"---------Request error---------" print "----------......----------" log('lucky', str(id)+'---'+res)[/mw_shl_code], waarbij log ook een functie is die ik aanpas, en die wordt gebruikt om logs vast te leggen:
[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]





Vorig:Notities over PHP-uploadlimieten
Volgend:memcache dll-extensie download voor PHP5.2, 5.3, 5.4, 5.5
 Huisbaas| Geplaatst op 13-02-2015 22:46:37 |
0×04 Doorzoek de lijst met rode enveloppen
Na het succesvol testen van een enkele actie voor het verzamelen van de rode enveloppen is het de kernmodule van ons programma - het doorzoeken van de rode enveloppenlijst zou veel methoden en ingangen moeten zijn om de rode enveloppenlijst te doorzoeken, zoals diverse Weibo-zoekwoorden enzovoort, maar ik gebruik hier de eenvoudigste methode: het crawlen van de rode enveloppenlijst.
Op de homepage (http://huodong.weibo.com/hongbao van de rode envelopactiviteit, via verschillende punten meer), zijn allemaal te zien, hoewel de lijst vaak met elkaar verbonden is, kan deze worden samengevat in twee categorieën (behalve de rijkste rode enveloplijst): thema en ranglijst.
Blijf F12 oproepen en analyseer het formaat van beide pagina's, te beginnen met een lijst van thematische vormen, zoals: http://huodong.weibo.com/hongbao/special_quyu
Je kunt zien dat de informatie van de rode envelop in een div genaamd info_wrap zit, dus we hoeven alleen de broncode van deze pagina te activeren, dan alle infowraps te pakken en het vervolgens simpelweg te verwerken om de rode enveloppenlijst van deze pagina te krijgen, hier moeten we enkele reguliere verhalen gebruiken:
[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-klas="rob_txt">',</span> re. DOTALL) #h Krijg info_wrap de reguliere 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) als n==0: return for i in range(n): #traverse alle 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')) #礼品价值 behalve uitzondering, 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])) #红包价值, contant/(aantal claimders + prijswaarde) # als info[0]/(info[2]+info[1])>100:                # print url luckyList.append(info) als 'class="page"' in html:#存在下一页 p=p+1 getThemeList(url,p) #递归调用自己爬取下一页[/mw_shl_code]Het is zo moeilijk te zeggen dat het zo moeilijk is, en het heeft lang geduurd om deze twee zinnen te schrijven. Er is ook een info in de info hier toegevoegd [4], wat mijn algoritme is om de waarde van rode enveloppen globaal te beoordelen. Waarom zou je dit doen? Er zijn veel rode enveloppen maar we kunnen maar vier keer trekken. In de enorme zee van tassen moeten we de meest waardevolle rode enveloppen vinden en dan trekken. Hier zijn drie gegevens ter referentie: contante waarde, cadeauwaarde en aantal ontvangers, uiteraard als het geld klein is en het aantal mensen dat veel mensen ontvangt of de waarde van de prijs extreem hoog is (sommige zijn zelfs gek in eenheden van honderden miljoenen), Dan is het de moeite niet meer waard om te pakken, dus heb ik lang gewacht en uiteindelijk een algoritme bedacht om het gewicht van rode enveloppen te meten: rode envelopwaarde = contant geld / (aantal ontvangers + prijswaarde).
Het principe van de leaderboardpagina is hetzelfde: zoek de sleuteltags en match ze regelmatig.
[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-klas="list_btn">',</span> re. DOTALL) #h Haal list_info de reguliere 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) als n==0: return for i in range(n): #Iterate door alle 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')) #礼品价值 behalve uitzondering, 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])) #红包价值, contant geld/(aantal ontvangers + cadeauwaarde)                # if info[0]/(info[2]+info[1])>100: # print URL luckyList.append(info) als 'class="page"' in html:#存在下一页 p=p+1                getTopList(url,daily,p) #递归调用自己爬取下一页[/mw_shl_code]Oké, nu kunnen we de lijst van de twee speciale pagina's succesvol crawlen, en de volgende stap is om de lijst met lijsten te krijgen, dat wil zeggen de verzameling van al deze lijstadressen, en ze dan één voor één te pakken:
[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', 'Qyu':'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', 'overig':'http://huodong.weibo.com/hongbao/cate?type=other'                } voor (theme,url) in themeUrl.items(): print "----------"+theme+"---------- print url print "----------......----------"                getThemeList(url,1) voor (top,url) in topUrl.items(): print "----------"+top+"----------" print url print "----------......----------"                getTopList(url,0,1) getTopList(url,1,1)[/mw_shl_code]
 Huisbaas| Geplaatst op 13-02-2015 22:47:13 |
0×05 Beoordeel de beschikbaarheid van rode enveloppen
Dit is relatief eenvoudig: zoek eerst op trefwoorden in de broncode om te zien of er een rode envelop-grijpknop is, en ga dan naar de collectie-ranglijst om te zien wat het hoogste record is; als het hoogste aantal maar een paar dollar ontvangt, tot ziens......
Het adres om het collectierecord te bekijken is 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) als 'action-type="lottery"' in html of 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, zoals 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 Krijg alle list_info vaste klanten luckyLog=pMoney.findall(html,re. DOTALL) if len(luckyLog)==0: maxMoney=0 anders: maxMoney=float(luckyLog[0]) als maxMoney <laagste: #记录中最大红包小于设定值 retourneren False anders: print u"--------- hand vertraagt---------" print "----------......----------" return false        return True[/mw_shl_code]0×06 Afwerkingswerk
De hoofdmodules zijn al aanwezig, en nu moeten alle stappen in serie worden verbonden:
[mw_shl_code=java,true]def start(gebruikersnaam,wachtwoord,low,fromFile): gl=False lowest=low login(gebruikersnaam, wachtwoord) if fromfile=='y': if os.path.exists('luckyList.txt'):                         try: f = file('luckyList.txt') newList = [] newList = p.load(f)                                print u'--------- laadlijst---------' print "----------......----------" behalve uitzondering, bijvoorbeeld: print u' is er niet in geslaagd de lokale lijst te parsen en de online pagina te crawlen. ' print "----------......----------" gl=Waar anders: print u' bestaat niet lokaal luckyList.txt het crawlen van online pagina's. ' print "----------......----------" gl=Waar als gl==Waar: getList() van operator import itemgetter                newList=sorted(luckyList, key=itemgetter(4),reverse=True) f = file('luckyList.txt', 'w') p.dump(newList, f) #把抓到的列表存到文件里, dus je hoeft f.close() niet te vangen voor lucky in next time newList: als het niet 'http://huodong.weibo.com' is in lucky[3]: #不是红包 doorgaan, print lucky[3] id=re.findall(r'(\w*[0-9]+)\w*',lucky[3])                getLucky(id[0])[/mw_shl_code] Omdat het erg lastig is om de rode enveloplijst herhaaldelijk te crawlen elke keer dat deze wordt getest, heb ik een alinea toegevoegd om de volledige lijst in de bestandscode te dumpen, zodat je de lokale lijst kunt lezen en de rode envelop in de toekomst kunt pakken.
[mw_shl_code=java,true]als __name__ == "__main__": print u"------------------ Weibo Red Envelope Assistant------------------" print "---------------------v0.0.1---------------------" print u"------------- door @***----------------" print "-------------------------------------------------" try: uname=raw_input(u"Voer alstublieft uw Weibo-account in: ".decode('utf-8').encode('gbk'))                pwd=raw_input(u"Voer alstublieft uw Weibo-wachtwoord in: ".decode('utf-8').encode('gbk')) low=int(raw_input(u"Rode envelop om het maximale contant geld groter dan n te ontvangen: ".decode('utf-8').encode('gbk')))) fromfile=raw_input(u) Of de rode enveloppenlijst in de luckyList.txt moet worden gebruikt: (y/n) ".decode('utf-8').encode('gbk')) behalve uitzondering, e: print u" parameter error" print "----------......----------" print e                exit(0) print u"--------- programma start---------" print "----------......----------" start (uname,pwd,low,fromfile) print u" --------- programma end--------- "print "----------...... ----------" os.system('pauze')[/mw_shl_code]
0×07 Laten we gaan!

0×07 Samenvatting
Het basisskelet van de crawler is eigenlijk afgerond, er is zelfs nog veel ruimte voor deze crawler om in veel details te spelen, zoals het aanpassen om batch-login te ondersteunen, zoals het optimaliseren van het rode envelopwaarde-algoritme; de code zelf zou ook veel plekken moeten hebben om te optimaliseren, maar met mijn vermogen schat ik dat ik dit kan bereiken.
Uiteindelijk zag iedereen het resultaat van het programma, schreef ik honderden regels code, duizenden woorden artikelen, en alles wat ik hard probeerde te krijgen was gewoon een set tweekleurige ballen, Nima pitpap, hoe kon het een tweekleurige bal zijn!! (Verteller: Hoe meer de auteur praatte, hoe enthousiaster hij werd, en hij huilde echt, en de mensen om hem heen overtuigden: Broer, zo is het niet, is het niet gewoon een Weibo rode envelop, gisteren deden mijn handen pijn, en ik schudde geen WeChat rode envelop uit.) )

Geplaatst op 14-02-2015 07:14:33 |
Hoeveel geld heb je in Loulou gepakt?
Geplaatst op 02-03-2016 13:48:27 |
Ziet er zo lang uit
Geplaatst op 07-03-2016 12:51:02 |
Ik weet niet of het serieus is
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com