Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pobranie adresu po przekierowaniu


eXu

Rekomendowane odpowiedzi

Specjalista
Opublikowano

Cześć,
Potrzebuję coś takiego, że:
Mamy tablicę z odnośnikami.
Następnie skrypt bierze pierwszy url z tablicy, nawiguje do niego i po załadowaniu strony pobiera URLA.
Działa to tak, ze:
wejście:
www.cos-tam.pl/ZJCAE

wyjscie
www.jakas-strona.pl/płny_url

Zrobiłem to i sprawdzanie jednego URL działa, ale juz tablicy nie, gdyż skrypt jest tak szybki, że nie potrafi pobrać url'a po przekierowiu, tylko naviguje do kolejnego elementu tablicy.
Za pomoc nawet dam jakiś profil :)

 

@ EDIT - więcej info niżej :)

Opublikowano

Może przed przejściem do następnego urla niech program odczeka x sekund?  Użyj komendy sleep

Opublikowano

Przepraszam ale nie do końca rozumiem jak ten program ma działać :D (tak jestem tępy). Jak jakoś to rozjaśnisz to pomyślimy jak to rozwiązać.

Specjalista
Opublikowano

Przepraszam ale nie do końca rozumiem jak ten program ma działać :D (tak jestem tępy). Jak jakoś to rozjaśnisz to pomyślimy jak to rozwiązać.

Jasne, że Ci wyjaśnię

 

Mam taki link: 

https://www.facebook.com/app_scoped_user_id/877910972270467

i jeżeli weźmiesz otworzysz go w przeglądarce to są 2 opcje:

pierwsza: przeniesie Cie na ten profil

 

https://www.facebook.com/zofia.hallmann

druga: będziesz musiał sie zalogować na fb, żeby zobaczyć ten profil.

 

Ale dla pewności na początku działania całej appki mam kod który loguje mnie na konto fb, tak aby tylko pierwsza opcja była możliwa :)

 

 

@ Edit - zaraz wrzucę kod, który napisałem :)

 

Mam taki kod:

 Private Sub webBrowser1_Navigated(ByVal sender As Object, _
ByVal e As WebBrowserNavigatedEventArgs) _
Handles fb.Navigated
        Debug.Write("Complete - " & fb.Url.ToString() & vbNewLine)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles getUrl.Click

        Dim ar() As String = inputData.Text.Split(vbNewLine.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
        For Each item In ar
            Debug.WriteLine("Navigate to: " & item)
            fb.Navigate(item)
        Next
    End Sub

dane na wejscie takie:

https://www.facebook.com/app_scoped_user_id/687062908087073
https://www.facebook.com/app_scoped_user_id/823227521047722
https://www.facebook.com/app_scoped_user_id/656308837829176
https://www.facebook.com/app_scoped_user_id/920721807992634

output wygląda tak:

Navigate to: https://www.facebook.com/app_scoped_user_id/687062908087073
Navigate to: https://www.facebook.com/app_scoped_user_id/823227521047722
Navigate to: https://www.facebook.com/app_scoped_user_id/656308837829176
Navigate to: https://www.facebook.com/app_scoped_user_id/920721807992634
Complete - https://www.facebook.com/app_scoped_user_id/920721807992634
Complete - https://www.facebook.com/peter.karakassis

a jak bym chciał, żeby wyglądał:

 

Navigate to: https://www.facebook.com/app_scoped_user_id/687062908087073
Complete - https://www.facebook.com/app_scoped_user_id/687062908087073
Complete - https://www.facebook.com/jakas_nazwa
Navigate to: https://www.facebook.com/app_scoped_user_id/823227521047722
Complete - https://www.facebook.com/app_scoped_user_id/823227521047722
Complete - https://www.facebook.com/jakas_nazwa
Navigate to: https://www.facebook.com/app_scoped_user_id/656308837829176
Complete - https://www.facebook.com/app_scoped_user_id/656308837829176
Complete - https://www.facebook.com/jakas_nazwa
Navigate to: https://www.facebook.com/app_scoped_user_id/920721807992634
Complete - https://www.facebook.com/app_scoped_user_id/920721807992634
Complete - https://www.facebook.com/peter.karakassis

Zrobiłem mała oprawkę, jakby oczekiwało na status nowo załadowaneo URL - wygląda to tak:

 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles getUrl.Click

        Dim ar() As String = inputData.Text.Split(vbNewLine.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
        For Each item In ar
            Debug.WriteLine("Navigate to: " & item)
            fb.Navigate(item)
            Do
                If fb.ReadyState = WebBrowserReadyState.Complete Then Exit Do
                Debug.Write("---")
            Loop
                

        Next
    End Sub

a co konsola na to?

Skrypt dochodzi do pierwszego elemetu tablicy, później jest funkcja do zmiany URL'a u pęta powinna zaczekać aż się dokument załaduje i przejść dalej, a co robi?

Jak już dojdzie do pętli to wyświetla samo "-------------------------" w tysiącach :D

Opublikowano

No to niech na początek do dannych wyjściowych kopiuje to co ma wpisać do webbrowsera np https://www.facebook.com/app_scoped_user_id/687062908087073

a następnie dopiero przechodzi do wpisania, przejścia i skopiowania nowego linku z textboxa i wklejenie go.
Pomiędzy tymi czynnościami możesz usypiać kod żeby webbrowser nadążał się załadować.

 

Specjalista
Opublikowano

Powiedz w którym miejscu wam wpisać opcje do usypiania "Threading.Thread.Sleep(3000)", bo gdzie bym nie dał to i tak nie działa ;/
Poza tym nie mogę sobie pozwolić na usypianie aplikacji, gdyż chce uzyskać najszybszy rezult...

Opublikowano

właśnie z tym kombinuję i faktycznie coś nie bangla bo mi wyszukuje tylko ostatnią osobę z listy, resztę olewa. Sorrki :D jak coś wykombinuję to dam znać

Opublikowano

to co dałem radę to namazałem :D chyba działa tylko nwm czemu wszystkie linki facebook odrzuca, grunt że teraz idzie po kolei, użyłem if If fb.ReadyState Then czyli przechodzi dalej dopiero po pełnym załadowaniu strony.

 

daje kod :D


Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ListBox1.SelectedIndex = 0
 
        TextBox1.AppendText("Navigate to: " & ListBox1.SelectedItem & vbNewLine)
        fb.Navigate(ListBox1.SelectedItem)
    End Sub
 
    Private Sub webBrowser1_Navigated(ByVal sender As Object, _
ByVal e As WebBrowserNavigatedEventArgs) _
Handles fb.Navigated
        If fb.ReadyState Then
            TextBox1.AppendText("Complete - " & fb.Url.ToString() & vbNewLine)
            ListBox1.Items.Remove(ListBox1.SelectedItem)
        End If
    End Sub
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim ar() As String = inputData.Text.Split(vbNewLine.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
        For Each item In ar
            ListBox1.Items.Add(item)
        Next
    End Sub
End Class
Specjalista
Opublikowano
 

 

to co dałem radę to namazałem  :D chyba działa tylko nwm czemu wszystkie linki facebook odrzuca, grunt że teraz idzie po kolei, użyłem if If fb.ReadyState Then czyli przechodzi dalej dopiero po pełnym załadowaniu strony.

...

 

Pomysł jest dobry, kombinacje najważniejsze ;)
Mi wszystkie URL'e działają jak należy, bo wcześniej trzeba zalogować sie na jakieś konto fb ;p

Ale jak to zapętlić, żeby nie wymagało ciągłego klikania? :> To własnie jest najważniejszy problem.
Teoretycznie mógłbym odpalić TIMER, który by powtarzał akcje z klikania, ale wtedy nie uzyskuje maximum wydajności ;/

I przy timerze, może okazać się, żę "x" czasu nie starczy na wykonanie zapytania ;/

Opublikowano

Do, loop. I niech sprawdza za każdym razem czy na listboxie są jeszcze itemy :-)

Specjalista
Opublikowano

Do, loop. I niech sprawdza za każdym razem czy na listboxie są jeszcze itemy :-)

Jest mały problemik... Mianowicie, zrobiłem takiego update: 

 

 Do 
            ListBox1.SelectedIndex = 0
            TextBox1.AppendText("Navigate to: " & ListBox1.SelectedItem & vbNewLine)
            fb.Navigate(ListBox1.SelectedItem)
        Loop Until ListBox1.Text IsNot Nothing

Coś nie mogę rozkminić tego ;c

Opublikowano

Też tego nie łapie :D. Cały czas kombinuje, może do tego czasu przyjdzie ktoś kto coś umie xD

 

@Edit chyba mam postęp :D

 

Public Class Form1
    Public retry As Boolean = True
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        wykonuj()
    End Sub
 
    Private Sub webBrowser1_Navigated(ByVal sender As Object, _
ByVal e As WebBrowserNavigatedEventArgs) _
Handles fb.Navigated
        If fb.ReadyState Then
            TextBox1.AppendText("Complete - " & fb.Url.ToString() & vbNewLine)
            ListBox1.Items.Remove(ListBox1.SelectedItem)
            wykonuj()
 
        End If
    End Sub
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim ar() As String = Inputdata.Text.Split(vbNewLine.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
        For Each item In ar
            ListBox1.Items.Add(item)
        Next
    End Sub
    Sub wykonuj()
        ListBox1.SelectedIndex = 0
        TextBox1.AppendText("Navigate to: " & ListBox1.SelectedItem & vbNewLine)
        fb.Navigate(ListBox1.SelectedItem)
    End Sub
End Class
Specjalista
Opublikowano

Co masz w outpucie? 
Bo u mnie WebBrowse ustawione jets na domyślne URL, czyli "www.facebook.com", i jak się ta strona załaduje to automatycznie wykonuje się funkcja "wykonaj" i wtedy liptonik, pryznajmniej u mnie :D nie iwem jak Ty tam działas :)
Może skype czy coś to rozkinimy to ;>

Opublikowano

Skype - cross9819 nie ma sprawy.

Mi wszystko śmiga tyle że na początku outputu mam about:blank ale to można łatwo usunąć.

 

Zawsze ewencie ładowania strony można dodać zmienną true/false czy przycisk był naciskany :P.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...