Strona 1 z 2

[C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 9:41
autor: Ciastex
Po dwóch dniach zabawy z modyfikowaniem LongBar'a (sprowadzałem program do wersji .NET Framework 2.0, tak aby zachować wszystkie funkcje), zrobiłem sobie przerwę i napisałem prosty crawler webowy, nazwa "Clutch" to nie sprzęgło, jak się to tłumaczy najczęściej, a w tym przypadku "Chwytak".

Napisałem go, ponieważ chciałem zapisać większą ilość obrazków z pewnej strony na raz, czego efektem ubocznym jest ten program. Najwięcej roboty było przy wielowątkowości (kilka razy zdarzyło mi się przy tym pierdzielnąć głową w biurko o tak -> :mur: ), o której poniżej.

Program korzysta z wielowątkowości (do 100 wątków w jednej instancji programu), co zapewnia większą wydajność programu, zwłaszcza na procesorach wielordzeniowych. Mamy możliwość zapisania loga crawlingu do pliku tekstowego. Dla stron HTML została napisana obsługa różnych kodowań tekstu, oraz "Użycia tego, które Windows uważa za najlepsze", czyli domyślnego w systemie. Istnieje możliwość wykluczenia stron o podanych domenach i słowach, oraz pobieranych plików o podanych rozszerzeniach. Program obsługuje typy MIME, oraz umożliwia dodanie typów użytkownika.

Do zrobienia jest jeszcze kilka rzeczy, mianowicie zatrzymywanie pojedynczych wątków, notowanie błędów zwracanych przez strony, oraz konsola wyjścia, oczywiście Wasze propozycje są mile widziane.

Zapraszam do testowania i zgłaszania wszelkich błędów, bo jeszcze nie wszystkie wyjątki są obsługiwane, a program zawiera masę niedociągnięć.

Screenshoty:
Obrazek

Obrazek
Oops... Przypadkiem trafił na ISO Sigmy :D

Obrazek

Program do pobrania w załączniku.

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 10:14
autor: urban92
Ten program może pobrać każdy element danej strony internetowej? Np. komuś spodoba się styl metro dla phpbb3 na techvortalu i będzie chciał go sobie ściągnąć i ściągnie?

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 10:57
autor: Ciastex
Nie, nie każdy. Pliki PHP dla przykładu nie zostaną pobrane. Zapisuje tylko to co "widzi" na stronie internetowej. Tak jak my widzimy i klikamy PPM->zapisz jako...
Grafikę zapisze, style css zapisze, generalnie to, co można zapisać przy użyciu źródła strony.

Zasada działania prosta:
1. Wejdź na stronę.
2. Zapisz co się da i parsuj dostępne linki.
3. Idź do punktu 1.

Czemu pytasz, czyżbyś bał się o swoją robotę? :P

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 12:58
autor: jedrekk
Weź zrób żeby nie zaokrąglał w górę kiedy progres jest większy niż 100% bo wygląda to komicznie. :D

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 13:12
autor: Ciastex
jedrekk pisze:Weź zrób żeby nie zaokrąglał w górę kiedy progres jest większy niż 100% bo wygląda to komicznie. :D
Taaa, zauważyłem to dopiero na screenshocie, w następnej wersji zostanie to poprawione :D

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 14:19
autor: GENERiC
Minus za .NET2 i minus za 99% prawdopodobieństwo rip-off'u:
http://www.codeproject.com/Articles/134 ... -C-Sockets

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 15:07
autor: PisarzKsiazkowicz
Nie zaprzeczę, wygląda podejrzanie podobnie.

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 16:11
autor: Dexter
urban92 pisze:Ten program może pobrać każdy element danej strony internetowej? Np. komuś spodoba się styl metro dla phpbb3 na techvortalu i będzie chciał go sobie ściągnąć i ściągnie?
Co to za problem pobrać ?

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 16:20
autor: urban92
Dexter pisze:Co to za problem pobrać ?
Taki że w przypadku phpbb3 w każdym katalogu jest pusty index.php, a nawet jakby go nie było to serwer i tak ma wyłączone listowanie zawartości katalogu. Nie znasz nazw wszystkich plików danej strony czy stylu, możesz jedynie pobierać pliki na podstawie dokumentacji a w przypadku stylów dość mocno zmodyfikowanych jedynie na podstawie odwołań w css, czyli strasznie żmudna robota.

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 16:30
autor: Dexter
To i tak pobranie części może ułatwić sprawę

http://speedy.sh/gsqPE/style.php.css

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 16:37
autor: Ciastex
GENERiC pisze:Minus za .NET2 i minus za 99% prawdopodobieństwo rip-off'u:
http://www.codeproject.com/Articles/134 ... -C-Sockets
Wzorowałem się na tym, owszem, ale tylko układ interfejsu jest podobny. Cały kod znajdujący się w programie był pisany od podstaw. Pobierz obydwa i porównaj ich działanie. Ten zalinkowany wypierniczy się po którymś błędzie. Ten zalinkowany używa zdeprecjonowanych elementów System.Threading.Thread do zarządzania wątkami, mój takich funkcji nie używa.

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 20:08
autor: Ult1me
Dexter pisze:To i tak pobranie części może ułatwić sprawę

http://speedy.sh/gsqPE/style.php.css
Ułatwi ale nie załatwi.

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 16 cze 2012, 23:55
autor: Conrado967
jedrekk pisze:Weź zrób żeby nie zaokrąglał w górę kiedy progres jest większy niż 100% bo wygląda to komicznie.
Coś dla Putina.

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 17 cze 2012, 19:25
autor: GENERiC
Ciastex pisze:
GENERiC pisze:Minus za .NET2 i minus za 99% prawdopodobieństwo rip-off'u:
http://www.codeproject.com/Articles/134 ... -C-Sockets
Wzorowałem się na tym, owszem, ale tylko układ interfejsu jest podobny. Cały kod znajdujący się w programie był pisany od podstaw. Pobierz obydwa i porównaj ich działanie. Ten zalinkowany wypierniczy się po którymś błędzie. Ten zalinkowany używa zdeprecjonowanych elementów System.Threading.Thread do zarządzania wątkami, mój takich funkcji nie używa.
Gdzie kończy się wzorowanie, a gdzie zaczyna się plagiat.
Kompozytorzy czerpią inspirację od innych kompozytorów. Tutaj zaś na wygląda mi to na beznadziejną zrzynkę(ten sam podkład, nawet bez podziękowań dla autora!) oraz lekko zmieniony tekst i kolejnośċ zwrotek żeby nie było.

Najbardziej rozwalił mnie copyright na dole okna dialogowego. Kpina.

Nie bawi mnie jeżdżenie po kimś. Ale w tym wypadku nawet siedmiolatek zauważy dziwne podobieństwo. Zmiana ikonek, kolejnoṡci zakładek i tekstów na mniej gramatyczne(że też nie chciało Ci się po polsku napisaċ, nie byłoby łatwiej?).

Re: [C#] Clutch Internet Crawler 0.6 Alpha

: 17 cze 2012, 21:59
autor: Ciastex
Ten interfejs jest podobny do tego który jest na code project, ale z czystym sercem mówię, że projekt został stworzony od podstaw, bez zrzynania, a UI przekalkowałem wyłącznie dlatego, że wydał mi się najwygodniejszy dla tego typu programu. No ale jak masz się czepiać wyglądu, to zmienię go na swój własny (najpierw to muszę mieć pomysł, jak to rozplanować).