BiH



#1 09.03.2020-12:27
xl_kid Offline
Clan
Registrovan/a od: 11.11.2008-08:24
Komentari: 148


Subject: 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
↑  ↓

#2 09.03.2020-18:45
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,053


Subject: 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.
Pozdrav
↑  ↓

#3 09.03.2020-20:29
xl_kid Offline
Clan
Registrovan/a od: 11.11.2008-08:24
Komentari: 148


Subject: 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
↑  ↓

#4 09.03.2020-21:20
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,053


Subject: Re: vb.net webbrowser scroll down
daj ako mozes postavi cio projekt po mogucnosti 2010 ako ne onda onaj u kom radis.
Pozdrav
↑  ↓

#5 10.03.2020-07:27
xl_kid Offline
Clan
Registrovan/a od: 11.11.2008-08:24
Komentari: 148


Subject: Re: vb.net webbrowser scroll down
Evo projekta. Potrebno je pre početka logovati se na instagramu preko internet explorera.

Prilozi:
Informacije o fajlu: zip  IGC.ZIP
Preuzimanja: 8
Veličina: 456.60 KB

↑  ↓

#6 11.03.2020-23:09
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,053


Subject: 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
Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 30.03.2020-06:12.