1. Főoldal
  2. Cikkek
  3. Dev
  4. [Vb.net] ZippyShare Downloader 2014

[Vb.net] ZippyShare Downloader 2014

Dev

A mai dev cikkemben bemutatom nektek a ma alkotott kis projektetem. Igazából lehetne mit javítani rajta. Félkész állapotnak lehetne nevezni, de mostani állapotában is tökéletesen használható.

Bár a ZippyShare nem korlátozza a letöltési sebességet, de mégis ahogy láthatjuk egyre több a reklám. Megnyitjuk az oldalt és új lapot nyit egy reklámnak, alul pedig 3 boxban kap helyet, melytől rendkívűl szaggathat a böngésző, hisz a letöbb megjelenő reklám flash.

Nos, térjünk a tárgyra. 

Mutatom videóban is, hiszen sokan inkább youtube-on néznék végig:

A webbrowsert természetesen behívhattam volna, akár dim alá is. (lásd)

Dim wbrowser As Webbrowser = New Webbrowser()

Ha ezzel a sorral csináljuk, akkor valószínűleg lesz, aki nem ért meg pár részletet a kódban, ezért sima beillesztett webbrowser-rel csináljuk.

Ami kell a Design form-ra:

  • Textbox (név: txt_url)
  • Button (név: btn_download , megjelenő szöveg: Download)
  • Webbrowser

Második lépésként szükségünk lesz a "Microsoft HTML Object Library" COM kiegészítőre. A fejlécen keressük meg a "Project"-t, nyissuk le és válasszuk ki az "Add Reference"-t.

A "COM" menüpont alatt keressük meg a "Microsoft HTML Object Library", tegyünk mellé egy pipát és nyomjunk oké gombot.

A Form-ra kattintsunk kétszer (bal klikk), majd Public class Form1 felett írjuk be a következőt:

Imports mshtml

Ezzel tudjuk behívni azt amit referenciaként hozzáadtunk a projekthez.

Menjünk vissza a Form1 (Design).vb lapra, kattintsunk kétszer a "Download" buttonra és a Webbrowser1-re.

A Public class Form1 alá írjuk be a következőt:

Dim research As Boolean = True

A boolean tartalma csakis True (igaz) vagy False (hamis) lehet, tehát a research változó most true, azaz igaz értéket kapunk vissza.

A Private Sub btn_download_click(...) tartalma a következő.

research = True
WebBrowser1.Navigate(txt_url.Text)

A webbrowser1 megkapja a textbox-ba beillesztett URL-t, illetve a research true (igaz lesz), ami a következő sorokban jelent lényeges dolgot.

A Private Sub WebBrowser1_DocumentCompleted(...) tartalma:

For Each link As HtmlElement In WebBrowser1.Document.Links
If research = True Then
If link.Id = "dlbutton" Then
If InStr(link.GetAttribute("href"), "/d/") Then
research = False
WebBrowser1.Navigate("http://" & txt_url.Text.Split("/")(2) & link.GetAttribute("href"))
End If
End If
End If
Next

Az első sorban kikérjük a webbrowser tartalmát, abból pedig a linkeket. Ha a research = true, tehát igaz, akkor lefut.

A linkeknél ellenőrizzük, hogy melyik talrtalmaz "dlbutton" id-t, ha van ilyen, akkor az instr(szöveg, "ez megtalálható benne?") ellenőrízzük, hogy a "/d/" létezik-e benne, mivel a linkünk így kezdődik. Ha igen, akkor a research false-re azaz hamisra változik és megáll a lekérdezés (minek terheljük tovább a processzort).

Ugyan abba a webbrowser-be meghívjük a linket, a txt_url.text.split("/")(2) annyit jelent, hogy a második / és a harmadik / között kivesszük a szöveget a textboxból (pl: www52.zippyshare.com ) , utána pedig hozzácsatoljuk a href-ben kapott linket, tehát ami "/d/" -vel kezdődik.

A kód képekben így néz ki:

Ez a projekt igazából nincs túlbonyolítva. Van szebb megoldás is, de hogy mindenkinek érhető legyen, először így mutattam be!

bykewix profilképe
Polgár Zoltán @bykewix +866 .NetDEV, PHP Engineer, Designer.
0 hozzászólás
Hozzászóláshoz jelentkezz be vagy Regisztrálj!