читать информацию о сайте, отображать приложение - PullRequest
0 голосов
/ 15 марта 2012

Если можно прочитать информацию с веб-сайта, который организован с использованием стандартизированного макета, это означает, что элементы управления / текстовые поля / кнопки и т. Д. Всегда находятся в одном и том же месте, но данные / значения, которые он содержит, изменяются.

В приложении C # WinForm я могу открыть эту страницу в фоновом режиме, прочитать некоторые значения и использовать их в моей форме?Есть ли способ ссылки на определенные области / элементы на веб-странице, даже если это что-то столь же неэффективное, как табуляция ровно 12 раз?Мне здесь вообще снится сон?

Опять же, мне не нужно нажимать определенные вещи на странице, просто прочитайте, что находится в определенном текстовом поле или что-то в этом роде.

Ответы [ 3 ]

6 голосов
/ 15 марта 2012

Html Agility Pack - популярный выбор для подобных вещей.

4 голосов
/ 15 марта 2012

Для этого вы также можете использовать элемент управления webbrowser.Чтобы получить все постеры в этой теме и их репутацию, вы можете сделать это:

private void Form1_Load(object sender, EventArgs e)
{
    webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_Navigated);
    webBrowser1.Navigate("/4633079/chitat-informatsiy-o-saite-otobrazhat-prilozhenie");    
}


private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{

    foreach (HtmlElement ele in webBrowser1.Document.GetElementsByTagName("SPAN"))
    {
        if (ele.GetAttribute("title") == "reputation score")
        {  
            MessageBox.Show(ele.Parent.Children[0].InnerText + " - "+ ele.InnerHtml);
        }
    }
}
1 голос
/ 15 марта 2012

Конечно, вы можете сделать это. Точная реализация может меняться в зависимости от веб-страницы, ее макета и т. Д.

В качестве основного / простого наброска: используйте WebClient для извлечения веб-страницы в виде строки, а затем используйте Regex для чтения соответствующей части HTML. Такие вещи, как «Hit Tab X Times», не будут работать, и их будет довольно сложно или сложно реализовать, поскольку вам придется либо встроить элемент управления браузера, либо самостоятельно анализировать HTML.

...