Jump to content
gigaevil

giCrawler

Recommended Posts

Posted (edited)

Pentru ca toata lumea de pe Romanian Security Team vor baze de date cu email pentru a creea spam, m-am gandit astazi sa fac un crawler multi-paralel.

Se introduc toate linkurile pentru a fi indexate, fiecare link e scos pe cate un thread separat, astfel daca initial am introdus 10 siteuri de indexat, vor fi scanate concurent de 10 thread-uri. Se pot introduce atatea cat fi executate de procesor.

Baza de date, este un fisier txt, in care se salveaza, dar nu se verifica daca mai a existat vreodata .

gicrawler.png

http://www.multiupload.com/QUP96IQXTA

Soft-ul reuseste sa indentice si sales[@]q2m[.]net sau andrei[at]realitatea dot net. Lucreaza asincron pe fiecare thread, doar pentru afisare se foloseste sectiune critica si se folosesc semafoare

Edited by gigaevil
  • Upvote 3
Posted (edited)
The file link that you requested is not valid. Please contact link publisher or try to make a search.

uploadeaza pe multiupload..

Ce serviciu web de 2 bani.... Multiupload.com - upload your files to multiple file hosting sites!

Edit2: Ideea e ca e limitat un thread(sa nu manance mult procesor, ideea e ca sa deschizi foarte multe threaduri, si atunci lucreaza bine... trebuie specificat la orice link http://

Facut in 12-13 ore

Edited by gigaevil
Posted

Daca nu am ceva in compilator(adica sa faca un binding automat) nu ar trebui... ca e dabia scos de la cuptor.

File Info

Report date: 2011-08-13 19:40:56 (GMT 1)

File name: gicrawler-exe

File size: 1470976 bytes

MD5 Hash: 9e84eb44951fa608a13b283a9d16c743

SHA1 Hash: 24e47f49bdf6093255989dac0a9600b8f9d42882

Detection rate: 0 on 5 (0%)

Status: CLEAN

Detections

AVG -

Avira AntiVir -

ClamAV -

Emsisoft -

TrendMicro -

Posted
Antivirus Version Last Update Result

AhnLab-V3 2011.08.13.00 2011.08.13 -

AntiVir 7.11.13.37 2011.08.12 -

Antiy-AVL 2.0.3.7 2011.08.13 -

Avast 4.8.1351.0 2011.08.13 -

Avast5 5.0.677.0 2011.08.13 -

AVG 10.0.0.1190 2011.08.13 -

BitDefender 7.2 2011.08.13 -

CAT-QuickHeal 11.00 2011.08.13 -

ClamAV 0.97.0.0 2011.08.13 -

Commtouch 5.3.2.6 2011.08.13 -

Comodo 9732 2011.08.13 -

DrWeb 5.0.2.03300 2011.08.13 -

Emsisoft 5.1.0.8 2011.08.13 -

eSafe 7.0.17.0 2011.08.10 -

eTrust-Vet 36.1.8499 2011.08.12 -

F-Prot 4.6.2.117 2011.08.13 -

F-Secure 9.0.16440.0 2011.08.13 -

Fortinet 4.2.257.0 2011.08.13 -

GData 22 2011.08.13 -

Ikarus T3.1.1.107.0 2011.08.13 -

Jiangmin 13.0.900 2011.08.13 -

K7AntiVirus 9.109.5010 2011.08.12 -

Kaspersky 9.0.0.837 2011.08.13 -

McAfee 5.400.0.1158 2011.08.13 -

McAfee-GW-Edition 2010.1D 2011.08.13 -

Microsoft 1.7104 2011.08.13 -

NOD32 6374 2011.08.13 -

Norman 6.07.10 2011.08.12 -

nProtect 2011-08-13.02 2011.08.13 -

Panda 10.0.3.5 2011.08.13 -

PCTools 8.0.0.5 2011.08.13 -

Prevx 3.0 2011.08.13 -

Rising 23.70.04.03 2011.08.12 -

Sophos 4.67.0 2011.08.13 -

SUPERAntiSpyware 4.40.0.1006 2011.08.13 -

Symantec 20111.2.0.82 2011.08.13 -

TheHacker 6.7.0.1.276 2011.08.13 -

TrendMicro 9.500.0.1008 2011.08.13 -

TrendMicro-HouseCall 9.500.0.1008 2011.08.13 -

VBA32 3.12.16.4 2011.08.13 -

VIPRE 10150 2011.08.12 -

ViRobot 2011.8.13.4621 2011.08.13 -

VirusBuster 14.0.167.0 2011.08.13 -

E clean nu a detectat nimic.

Posted

Mai incerc o data sa explic ideea:

Ideea e ca daca veti pune doar un singur URL(adica doar un site de indexare) o sa fie deschis un singur thread care crawlereaza destul de greu, am si modificat prioritatile thread-urile sa fie low, sa nu foloseasca procesorul mare.

Ideea e ca sa aveti 50 de URL-uri diferite deoarece el indexeaza 50 de siteuri in acelasi timp asincron astfel viteza de procesare creste de 50 de ori.

Adresele de email sunt salvate in cate un fisier, si deoarece le scriu imediat cum le gasesc(adica le scriu in parcurs) nu verific daca a mai fost introdus, in urmatorul update o sa le sortez si sa le verific cu cautari binare daca mai exista sau nu aceea adresa de email. In numai un 2 minute am gasit 5000 de adrese de email de pe 30 de siteuri diferite.

Cateodata la anumite pagini se mai blocheaza(din cauza ca nu reuseste sa downloadeze pagina respectiva) data viitoare ca nu mai am chef sa citesc ceva o sa ma uit pe functia de downloadeaza pagina de pe URL respectiv.

Posted (edited)

Initial l-am inceput in IDE Borland C++ Builder 6.0 nu am stiut sa fac functia de a lua continutul de la un anumit URL asincron, si dupa aceea am scris unitul in Borland Delphi 6.0 si am avut problele cand am incercat sa import functia din pascal in C++(eu vroiam asincron) de niste threaduri. Si ca nu am reusit sa ma prind din ce cauza era problema de incompatibilitati, este scris in totalitate in Borland Delphi 6.0, limbaj Pascal.

PS: De ce l-am facut? Tu imi trebuia mie un crawler pentru a putea creea o baza de cunostinte mare, eu incerc sa scriu un sistem expert.... bine o sa sterg functia cu cautarea dupa adrese de email.

Edited by gigaevil
Posted
E misto ca mai vine cineva si cu cate ceva facut in totalitate de el ...numai munca depusa...respect pt asta!

Soft-ul pentru mine a fost gandit in felul urmator.... eu incerc sa fac un sistem expert in guru, iar pentru asta incerc sa fac o baza mare de cunostinte, iar pentru a o creea imi trebuie sa fac un crawler, si dupa aia reprezentare relationala sub forma de reguli/clauze nu sub forma de mostenire. Si am modificat sursa pentru email-uri.

Posted

Oaaaa, de ce nu ai ales un limbaj mai web friendly? Sistemul expert va fi tot in Delphi? Ai nevoie de proxy-uri pentru ca majoritatea API-urilor (spre exemplu cele de la Google) sunt limitate si e posibil sa te confrunti cu o chestie similara si la crawling. Eu daca as vedea ca-mi faci 100 de requesturi intr-o secunda ti-ai lua ban. Pentru asta-i necesar. :-)

Elimina duplicate content?

P.S: Ai inceput sa faci si chestii Open Source? :>

Posted (edited)

@Andrei sistemul expert e scris in C++ Builder, nu elimina chestile duplicate ca atunci cum gasesc adresa de email o scriu intr-un stream, fara sa cautat daca mai e... l-am facut in delphi ca nu stiam sincronizare in c++

Ma cautat cineva sa ii dau sursa si m-am gandit sa postez codul sursa. Ideea era sa ai paralel 100 de sit-uri diferite.

@aphex, Threadurile lucreaza asincron adica proceseaza singure paralel, si cand vreau sa accesez niste variabile comune(nu mai stiu care) se pot nimeri ca in acelasi timp threadurile citesc si scriu o variabila, si va trebui sa le sincronizez, si ceea mai simpla metoda era printr-o sectiune critica. O alta solutie mult mai simpla era prin mutex-uri dar pierdea ceva timp cu mutex-urile

Dintr-un cod paralel se transforma intr-un cod neparalel, si sunt executate ca intr-o coada. Sistemul de operare face rezolvarea sectiunilor critice cu problema filozofilor

Edited by gigaevil

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...