Avko |
05.04.2022 13:43 |
Predmet:VBA scraping
mozda znate kako bi skinuo viceve sa web stranice u excel?
web stranica: https://icentar.ba/icentar/showtopic.php?id=22
PreuzmiIzvorni kôd (Visual Basic):Sub test()
the_start:
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Top = 0
objIE.Left = 0
objIE.Width = 800
objIE.Height = 600
objIE.Visible = False 'We will see the window navigation
On Error Resume Next
objIE.Navigate ("https://icentar.ba/icentar/showtopic.php?id=22")
Do
DoEvents
If Err.Number <> 0 Then
objIE.Quit
Set objIE = Nothing
GoTo the_start:
End If
Loop Until objIE.ReadyState = 4
MsgBox "webpage has loaded"
Dim AllString As String
Set Alllinks = objIE.Document.getElementsByTagName("a")
For Each Hyperlink In Alllinks
If InStr(Hyperlink.innerText, "Haso") > 0 Then
AllString = Hyperlink.innerText
Exit For
End If
Next
MsgBox AllString
End Sub
|
zxz |
09.04.2022 11:48 |
Predmet:Re:VBA scraping
Nece niko ni da proba.
PreuzmiIzvorni kôd (Visual Basic):Function test()
the_start:
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Top = 0
objIE.Left = 0
objIE.Width = 800
objIE.Height = 600
objIE.Visible = False 'We will see the window navigation
On Error Resume Next
objIE.Navigate ("https://icentar.ba/icentar/showtopic.php?id=22")
Do
DoEvents
If Err.Number <> 0 Then
objIE.Quit
Set objIE = Nothing
GoTo the_start:
End If
Loop Until objIE.ReadyState = 4
Dim AllString As String
Set Alllinks = objIE.Document.getElementsByTagName("div")
For Each Hyperlink In Alllinks
ime = Hyperlink.className
If ime = "bbody iefix_left" Then
AllString = Hyperlink.innerText
MsgBox AllString
MsgBox Hyperlink.Name
'Exit For
End If
Next
Set objIE = Nothing
End Function
|
pmiroslav |
10.04.2022 15:02 |
Predmet:Re:VBA scraping
Dobar dan.
Isprobavam ovo i funkcija radi kada ju pokrenem u VBA editoru. Za Access znam ali mi nije potpuno jasno kako se funkcija poziva kada se otvoru Excel sheet? |
Avko |
12.04.2022 09:51 |
Predmet:Re:VBA scraping
Citiraj pmiroslav:Dobar dan.
Isprobavam ovo i funkcija radi kada ju pokrenem u VBA editoru. Za Access znam ali mi nije potpuno jasno kako se funkcija poziva kada se otvoru Excel sheet?
ja sam to napravio ovako:
u module1 dodao sam jos ovo:
Sub proba()
Call test
End Sub
zatim sam na List1 stavio tipku na ovaj nacin:
cijeli kod. Nakon sto se pokaze vic ako pritisnemo OK, pokaze sljedeci vic a ako kliknemo na cancel vrati nas na List1 tj, izade iz funkcije
PreuzmiIzvorni kôd (Visual Basic):Sub proba()
Call test
End Sub
Function test()
Dim odgovor
the_start:
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Top = 0
objIE.Left = 0
objIE.Width = 800
objIE.Height = 600
objIE.Visible = False 'We will see the window navigation
On Error Resume Next
objIE.Navigate ("https://icentar.ba/icentar/showtopic.php?id=22")
Do
DoEvents
If Err.Number <> 0 Then
objIE.Quit
Set objIE = Nothing
GoTo the_start:
End If
Loop Until objIE.ReadyState = 4
Dim AllString As String
Set Alllinks = objIE.Document.getElementsByTagName("div")
For Each Hyperlink In Alllinks
ime = Hyperlink.className
If ime = "bbody iefix_left" Then
AllString = Hyperlink.innerText
odgovor = MsgBox(AllString, vbOKCancel)
If odgovor = vbCancel Then Exit Function
End If
Next
Set objIE = Nothing
End Function
za svaku web stranicu drugacije treba prilagoditi kod jer ne sadrze sve tekst vica izmedu div, neke imaju u <a> ili <p>
Tako da ne postoji univerzalni kod za skidanje sadrzaja web stranice vec ga moramo rucno prilagoditi.
Treba sa firefox otvoriti web lokaciju a zatim izabrati u meniju firefoksa-vise alata-pokazi izvornu web stranicu i onda prouciti gdje se nalazi tekst koji zelimo skinuti i prilagoditi kod |
zxz |
14.04.2022 01:28 |
Predmet:Re:VBA scraping
funkcija se moze pozvati iz bilo koje celije kao i sve ostale gotove funkcije.
Mozes skinuti i cio sadrzaja ako nemas filtere u funkciji odnosno ako skidas od taga body. |