Pomoć oko koda za izvlačenje podataka s weba

poruka: 45
|
čitano: 8.641
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

pozdrav ljudi, znam da mi je ovo prvi post al jbg kad se treba pomoc treba se :P

moze li mi tko pomoci oko koda koji bi izvukao primjerice Trenutna cijena xx.xxkn, Završava za i naslov iz html koda stranice aukcije.hr, znaci primjerice url je  http://aukcije.hr/item.php?id=1090841  i iz njega bih htjeo izvuci te informacije, ako tko zna kako bio bih vrlo zahvalan :P vec sam pokusao s splitanjem tako da kada dode do rijeci trenutna doda je u neku variablu, cijenu takoder, a kad dode do kn da zavrsi, al taj kod nije bas nes najbolje funkcionirao :S tako da svaka pomoc dobro dosla :) radim u vb.net-u

Poruka je uređivana zadnji put pon 31.5.2010 2:25 (Dokyri).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

Evo najjednostavnijeg rješenja. Trebat će ti Perl interpreter za ovo: http://pastie.org/984883

15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

hmm nisam bas neki poznavaoc perla :S valjda uspijem nes, btw hvala za trud :)

Poruka je uređivana zadnji put pon 31.5.2010 0:42 (Dokyri).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

Nije problem :)

Web::Scraper je port sličnog modula u Rubyju ako ti se Perl ne dopada. S druge strane, ako koristiš windowse preporučam instalaciju Strawberry Perla (http://strawberryperl.com/). Instalacija modula sa CPAN-a radi odlično koliko čujem. Ako zatrebaš pomoć, pitaj!

 

15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

hm taj mi radi probleme, njeg moram posebno skinuti ili?

 

Can't locate Web/Scraper.pm in @INC (@INC contains: C:/strawberry/perl/site/lib
C:/strawberry/perl/vendor/lib C:/strawberry/perl/lib .) at C:\Users\Mauro\Deskto
p\aukcije.pl line 10.
BEGIN failed--compilation aborted at C:\Users\Mauro\Desktop\aukcije.pl line 10.

 
0 0 hvala 0
15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

ok rijesio sam sve greske, koji argumenti su za pokretanje tj kak pokrecem?

Poruka je uređivana zadnji put pon 31.5.2010 11:31 (Dokyri).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

To nije error koji bi se trebao dogoditi iz Web::Scrapera. Jesi li instalirao Web::Scraper preko cpan programa, ili kako drugačije?

 

EDIT: sad sam vidio i gornju poruku. Dakle module bi trebao instalirati preko cpan programa (nalazi se u istom direktoriju gdje je u perl.exe) koji će ti pokupiti sve module koji ti trebaju za Web::Scraper.

 

Poruka je uređivana zadnji put pon 31.5.2010 11:33 (Black Deus Typhon).
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

Program pokreneš sa c:/putanja/do/perl.exe aukcije.pl 'aukcije.hr adresa ili ID predmeta'. ID je zadnji broj u adresi do predmeta.

 

Npr. C:/putanja/perl.exe C:/putanja/aukcije.pl http://www.aukcije.hr/item.php?id=810941

 

Poruka je uređivana zadnji put pon 31.5.2010 11:36 (Black Deus Typhon).
15 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

ok nisam to iso radit, vec sam skinuo s cpan stranice sve :Pjbg noob sam za perl :P nego kako da pokrenem skriptu ? npr za http://www.aukcije.hr/item.php?id=810941

 

edit ok :P

Poruka je uređivana zadnji put pon 31.5.2010 11:35 (Dokyri).
15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

C:\Windows\system32>C:\Users\admin\Desktop\aukcije.pl http://www.aukcije.hr/item.php?id=810941
aukcije.pl ID|URI at C:\Users\admin\Desktop\aukcije.pl line 12.

 

hm sad sam zapeo :S

 

edit

 

ok pokrenuo sam prek perla

 

C:\Windows\system32>C:\strawberry\perl\bin\perl.exe C:\Users\admin\Desktop\aukcije.pl 810941

i dobio gresku :S
Can't locate object method "new" via package "HTML::TreeBuilder::XPath" at C:/st
rawberry/perl/vendor/lib/Web/Scraper.pm line 115.

 

 

Poruka je uređivana zadnji put pon 31.5.2010 11:43 (Dokyri).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba
Dokyri kaže...

ok pokrenuo sam prek perla

 

C:\Windows\system32>C:\strawberry\perl\bin\perl.exe C:\Users\admin\Desktop\aukcije.pl 810941

i dobio gresku :S
Can't locate object method "new" via package "HTML::TreeBuilder::XPath" at C:/st
rawberry/perl/vendor/lib/Web/Scraper.pm line 115.

 

 

 

Čini mi se da instalacija svih modula nije prošla kak treba. Probaj instalirati ovaj modul sa "C:/putanja/do/cpan.exe HTML::TreeBuilde::XPath".

Ili probaj C:/putanja/cpan.exe Web::Scraper pa javi jel prošlo.

Program će te tu i tamo pitati za konfiguraciju, ali možeš sve ostaviti na defaultima.

 

15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

hmm cpan mi nemoze nac :S, idem ja skroz ispocetka lol

 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

Nije cpan.exe, nego cpan.bat. Moja greška, sorry :)

15 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

bas sam skuzio da postoji bat skripta :P aj sad cemo viditi :D

15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

e bas si car :D radi odlicno, samo jos moram to povezati s vb netom xD

 

mislim da znam :P prvo cu probati napraviti vb net verziju cmd-a to sam dosta davno radio :P a onda cu prek tog napraviti da izvlaci ove podatke ,   ak to uspije onda cu probat napraviti "lite" verziju perla koja bi bila u programskom folderu i prek tog bi se skripta pokretala, sve u svemu od srca ti hvala :)

Poruka je uređivana zadnji put pon 31.5.2010 12:09 (Dokyri).
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

Ajd, baš mi je drago da je proradilo :)

 

Al, kak sam naveo u prvom postu, ovo sa Web::Scraperom je najjednostavnije rješenje koje se može dosta proširiti, jer Perl ima i Win32 module preko kojih može komunicirati sa drugim aplikacijama (OLE mi prvi pada na pamet, ali nisam tu doma, zadnji put sam u Perlu na windowsima programirao prije 5 godina :)).

 

Grafički dio, ako želiš GUI, može se isprogramirati relativno jednostavno preko Tk modula.

 

15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

ma naso sam si rjesenje :P nije mi tesko napraviti vezu izmedu cmd-a i perl skripte :P smanjit cu velicinu per lib-a tako da ne zauzima 120Mb vec manje :P, al u svakom slucaju hvala na savjetima :)

 
0 0 hvala 0
17 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

OK, nema frke. Ako zapneš s Perlom, javi!

:)

15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

jel bas hoces da bude u VB.net, bez ikakvih dodataka, toga perla itd.? posto ja sam nest radio sa time, al ne za aukcije.hr, pa ak hoces, napravim ti nabrzinu neki pa postavim ti kod ovdje?

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

evo, napisao sam, nadam se da ce ti pomoci...:)

 

http://www.mediafire.com/?gtmcnoyhjkw

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba
Uny kaže...

evo, napisao sam, nadam se da ce ti pomoci...:)

 

http://www.mediafire.com/?gtmcnoyhjkw

 hm bas mi nes ne radi :S

Poruka je uređivana zadnji put ned 6.6.2010 22:15 (Dokyri).
16 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

A zašto to nebi napravio iz samo VB .Neta? Jednostavno skineš stranicu, i izoliraš sve između <TITLE> (nažalost je veliko na aukcijama -_-) tagova. Cijena na aukcijama je koliko ja vidim uvijek odvojena sa "- ", tako da ti izolacija same cijene nebi trebala biti problem. Primjer toga što si ti naveo:

 

Dobiješ HTML:

....

<TITLE>aukcije.hr - Mrežna kartica 3COM,3C905C-TX-M,10/100 autodetect,PCI,RWU/WOL! - 49,00 HRK</TITLE>

....

 

Izoliraš sve između <TITLE> tagova i staviš u npr. varijablu "naslov". Znači:

varijala naslov ima vrijednost: "aukcije.hr - Mrežna kartica 3COM,3C905C-TX-M,10/100 autodetect,PCI,RWU/WOL! - 49,00 HRK"

 

Kreneš od kraja stringa, i nađeš index prvog odozada "-" znaka.

Sad removeaš iz stringa "naslov" od 0 do n+1, gdje je n index zadnjeg "-", i imaš cijenu.

 
1 0 hvala 0
15 godina
neaktivan
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

kako ne radi?...gdje javlja gresku?, meni radi sve kako treba, da spremim u vb.netu i uploadam? da pogledas da li tako bude radilo. A za ovo gore sto je kolega pisao, tocno to ovaj kod radi, otvori stranicu i izvadi podatke, ak treba dodatno pojasnjenje, tu sam...:)

Poruka je uređivana zadnji put pon 7.6.2010 10:29 (Uny).
15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

  Dim NASLOV As String = WebBrowser1.Document.GetElementById(NASLOV).InnerText

Value does not fall within the expected range.

 

kad obrisem to dobijem

 

  Dim zavrsni_index As Integer = STRANICA_UCITANA.IndexOf(TRAZI_KOD_KRAJ, pocetni_index)

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: startIndex

Poruka je uređivana zadnji put čet 17.6.2010 0:58 (Dokyri).
 
0 0 hvala 0
17 godina
offline
Pomoć oko koda za izvlačenje podataka s weba

U cemu ti ovo kucas?

I'm going woo woo
 
0 0 hvala 0
15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

vb net tj visual studio

 
0 0 hvala 0
17 godina
offline
RE: Pomoć oko koda za izvlačenje podataka s weba

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.IO;

using System.Net;

 

 

public String Parse_Webpage(String Webpage) //ovaj dio ti parsa stranicu

   {

     WebRequest myRequest = WebRequest.Create(Webpage);

     StreamReader myStreamReader = new StreamReader(myRequest.GetResponse().GetResponseStream(), System.Text.Encoding.GetEncoding(1250), true);

     return myStreamReader.ReadToEnd();

   }

 

 

   public String Extract_Data()

   {

     String Parsed_Result = Parse_Webpage("http://www.nekastranica.com");

     Int32 Start, Stop;

     //trazis gdje pocima i zavrsava tekst unutra title tagova

     Start = Parsed_Result.IndexOf("<title>") +7; //+7 je jer ti indexof vraca pocetak ovog stringa <title> a tebi treba izmedju tagova

     Stop = Parsed_Result.IndexOf("</title>");

     //izvlacis tekst unutra title taga

     return Parsed_Result.Substring (Start, Start - Stop); //ovo vraca rezultat unutra title tagova

 

   }

 

 

Evo ovo ti je ušporko u C# napisano... nisan vrsija nikakve provjere (jel uopce uspilo proparsat, postoji li title tag i sl) ali ovo je osnovna ideja koja radi.

 

C# > VB.Net mozes lako prebacit, postoje skripte na netu koje to automatski rade.

I'm going woo woo
Poruka je uređivana zadnji put čet 17.6.2010 9:54 (tnakir).
17 godina
offline
Pomoć oko koda za izvlačenje podataka s weba

Koristi rađe regular expression za filtriranje stringova. Manje koda, preglednije, ali malo teže za naučiti...

'Genius might be the ability to say a profound thing in a simple way' Charles Bukowski
 
1 0 hvala 0
17 godina
offline
RE: Pomoć oko koda za izvlačenje podataka s weba
dado2202 kaže...

Koristi rađe regular expression za filtriranje stringova. Manje koda, preglednije, ali malo teže za naučiti...

Da... ali vidio sam da trazi title, a ovo je najjednostavniji nacin kako izvuci tekst izmedju title tagova... 

I'm going woo woo
15 godina
neaktivan
offline
Pomoć oko koda za izvlačenje podataka s weba

CONVERSION ERROR: Code could not be converted. Details:

-- line 21 col 8: invalid TypeDecl

Please check for any errors in the original code and try again.

 
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice