Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Vb/Vbnet » vb.net webbrowser scroll down
xl_kid 09.03.2020 13:27
Predmet:vb.net webbrowser scroll down

Pokušavam da prilikom očitavanje strane dodam scroll down funkciju pa tek onda da dobijem podatke. Prilikom učitavanja web stane dobijem 15 ispisa. Potrebno mi je barem 10x više. Na svaki scroll down na strani dodaju se novi zapisi. Konkretno reč je o IG. Hoću da za određeni # dobijem linkove.

Evo i koda gde nikako ne mogu da provalim kako da mu pre očitavanja strane dodelim scrol down tj da učitam recimo 50 redova umesto trenutnih 5.

Imports System.Net
Imports System.IO
Imports System.Windows.Forms
Imports System.Text.RegularExpressions
Imports System.Xml
Imports mshtml
Public Class INSTA

Dim doc As mshtml.IHTMLDocument3

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

WebBrowser1.ScriptErrorsSuppressed = True

Dim url As String = "https://www.instagram.com/explore/tags/fashion/"

Try

WebBrowser1.Navigate(url)

Catch ex As Exception
End Try

End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

doc = CType(WebBrowser1.Document.DomDocument, IHTMLDocument2)
'Me.WebBrowser1.Document.Window.ScrollTo(0, 1800)

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

ListBox1.Items.Clear()

Dim HTMLI As mshtml.IHTMLElement

For Each HTMLI In doc.getElementsByclassName("Nnq7C weEfm")

If HTMLI.innerHTML.Contains("a href") Then
Dim sSource As String = HTMLI.innerHTML 'String that is being searched

Dim subst As String = sSource.Substring(41, 15)
MessageBox.Show(subst.Count)
ListBox1.Items.Add(subst & vbCrLf)
End If

Next

End Sub

End Class

zxz 09.03.2020 19:45
Predmet:Re: vb.net webbrowser scroll down

Ako sam te dobro razumio hoces na html dokumentu da listas po stranicama a da napr svaka stranica ima 15 redova.
To se radi na nivou SQl a posto neznam koju bazu koristis nemogu ni napisati.
Kod nisam ispratio jer hocu da vidim jesam li te razumio sta hoces.

xl_kid 09.03.2020 21:29
Predmet:Re: vb.net webbrowser scroll down

Hocu da sa instagrama za odredjeni hashtag skinem linkove npr 100 poslednjih. Instagram prikazuje 15 poslednjih, kad skrolujes dole otvori jos 15 i tako do kraja. Ne ucita celu stranu nego parcijalno. Ja hocu da ucitam recimo 100 zapisa ili 10 skrola. Pomocu koda gore ucita mi sam poslednjih 15

zxz 09.03.2020 22:20
Predmet:Re: vb.net webbrowser scroll down

daj ako mozes postavi cio projekt po mogucnosti 2010 ako ne onda onaj u kom radis.

xl_kid 10.03.2020 08:27
Predmet:Re: vb.net webbrowser scroll down

Evo projekta. Potrebno je pre početka logovati se na instagramu preko internet explorera.
Prilozi:
IGC.ZIP (Velicina datoteke:456.60 KB)

zxz 12.03.2020 00:09
Predmet:Re: vb.net webbrowser scroll down

NMazalost ja nemam instagram i nemogu uci da vidim uistinu koliko ima elemenata.
Mogu opisati kako treba uraditi pa ako ne uspijes pokusat cemo na neki drugi nacin
U kodu ispod je petlja koja bi trebala da ucita sve elemente u listBox kako sam ja to vidio.
Da bi sprijecio ucitavanje svih elemenata odjednom odnosno da ucitavas stranicu po stranicu morao bi na vrhu klase ili negdje drugdje da definises tri variable.
Jedna bi bila brojac napr i=0 br_strane=0 i treca a moze biti konstanta redova_po_strani.
Uzmimo da je Button2 next za listanje nazad mislim da nmozes sam.

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

'WebBrowser1.Navigate("javascript:window.scroll(0,4050);")

ListBox1.Items.Clear()

Dim HTMLI As Xml.XmlElement

For Each HTMLI In doc.getElementsByclassName("Nnq7C weEfm")

If HTMLI.innerHTML.Contains("a href") Then

Dim sSource As String = HTMLI.innerHTML 'String that is being searched

Dim subst As String = sSource.Substring(41, 15)
REM MessageBox.Show(subst.Count)
i=i+1
br_strane=br_strane +1
start=br_strane*redova_po_strani
kraj=start+redova_po_strani
if i >=start and i<=kraj rhen
ListBox1.Items.Add("https://www.instagram.com" & subst & vbCrLf)
enduif
End If

Next

End Sub