Skocz do zawartości

Czarnowłosy

Członkowie
  • Postów

    3
  • Dołączył

  • Ostatnio

Posty napisane przez Czarnowłosy

  1. Cześć,
    chcę stworzyć program wyświetlający wyniki wyszukiwania internetowego z aktywnymi linkami, jak DuckDuckGo. Używam przeglądarki PhantomJS bez interfejsu. Pobieram dane z rezultatów wyszukiwarki Qwant Lite.

    Teraz na okienku aplikacji wypisanych jest tylko kilka rezultatów (tytuły, adresy URL i opisy stron) bez odnośników. Podam przykład:

    Cytat

     

    Microsoft ułatwia przejście z Windows 7 na Windows 10 - tytuł strony

    https://www.komputerswiat.pl/[...]ndows-7-na-windows-10/d756zxe - adres URL
    Windows 7 to system operacyjny, który wkrótce zostanie porzucony. Wsparcie zakończy się w styczniu 2020 roku. Microsoft zdaje sobie sprawę z tego, że pod kontrolą "siódemki" pracują ... - opis strony

     

    Zauważyłem, że są pokazywane wszystkie skopiowane z Qwant Lite tytuły bez właściwości PropertyUrl. Ta właściwość określa, do jakiej strony trafi użytkownik po kliknięciu lewym przyciskiem myszy w tytuł. Tytuły nie są jednak odnośnikami do jakiejkolwiek strony.

    Jak wyświetlić wszystkie rezultaty wyszukiwarki z linkami?

    bool search_end = false, page_se = false;
    byte page = 0; // Numer rezultatu
    
    while (!search_end)
    {
        try
        {
            while (!page_se)
            {
                try
                {
                    Run title = new Run(phantomDriver.FindElements(By.ClassName("result")).ElementAt(page).FindElement(By.ClassName("title")).Text); // Tytuł strony
                    Hyperlink hyperlink = new Hyperlink(title)
                    {
                        NavigateUri = new Uri(phantomDriver.FindElements(By.ClassName("result")).ElementAt(page).FindElement(By.ClassName("url")).Text)
                    };
                    Results.Inlines.Add(hyperlink); // Results - Nazwa elementu TextBlock | Dodawanie linku
                    Results.Text += Environment.NewLine;
                    Results.Text += phantomDriver.FindElements(By.ClassName("result")).ElementAt(page).FindElement(By.ClassName("url")).Text + Environment.NewLine; // Dodawanie adresu URL
                    Results.Text += phantomDriver.FindElements(By.ClassName("result")).ElementAt(page).FindElement(By.ClassName("desc")).Text + Environment.NewLine + Environment.NewLine; // Dodawanie opisu
                    ++page; // Pobieranie danych z następnego wyniku
                }
                catch
                {
                    page_se = true; // Koniec kopiowania informacji z obecnej strony wyszukiwarki
                }
            }
            phantomDriver.FindElement(By.ClassName("next")).Click(); // Przejście do następnej strony
            page = 0;
        }
        catch // Zamknięcie przeglądarki
        {
            phantomDriver.Quit();
            search_end = true;
        }
    }

     

×
×
  • Utwórz nowe...