Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2016, 20:44   #1
fanat_96
Пользователь
 
Регистрация: 09.04.2016
Сообщений: 81
По умолчанию Получить H1

Здравствуйте. Не удается получить содержимое заголовка h1 до первого слеша, то есть "100 футов".
Код HTML:
<h1>100 футов / 100 Feet (2008) BDRip 720p | P, P2</h1>
Делаю так:
Код:
url = "http://rutor.is/";
                complUrl = TextUrl.Text.Substring(url.Length - 1);

                using (HttpClientHandler handler = new HttpClientHandler() { AllowAutoRedirect = true, AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate })
                {
                    using (HttpClient client = new HttpClient(handler) { BaseAddress = new Uri(url) })
                    {
                        HtmlAgilityPack.HtmlDocument HD = new HtmlAgilityPack.HtmlDocument();
                        HD.LoadHtml(client.GetStringAsync(complUrl).Result); //можно делать все асинхронно. 
                        var title = HD.DocumentNode.SelectSingleNode("//h1']");//искомый элемент
                        richTextBox1.Text = title.InnerText;
                    }
                }
Код выдает ошибку и вообще ничего не происходит...
fanat_96 вне форума Ответить с цитированием
Старый 22.04.2016, 21:05   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в вашем случае асинхронности нет.
плюс неверно применяете.

уберите ваш ASync.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.04.2016, 21:08   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так селектор странный, вот и выдает. Что за ']?

Видимо надо просто //h1

А то что после / потом просто с помощью .IndexOf/.Substring убрать если надо.

Код:
            using (HttpClientHandler handler = new HttpClientHandler
                {
                    AllowAutoRedirect = true,
                    AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
                })
            {
                using (var httpClient = new HttpClient(handler) { BaseAddress = new Uri(url) })
                {
                    string html = httpClient.GetStringAsync(complUrl).Result;

                    var htmlDoc = new HtmlAgilityPack.HtmlDocument();
                    htmlDoc.LoadHtml(html);

                    var titleNode = htmlDoc.DocumentNode.SelectSingleNode("//h1");
                    string title = titleNode.InnerText;
                }
            }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 22.04.2016 в 21:10.
Alex11223 вне форума Ответить с цитированием
Старый 22.04.2016, 22:08   #4
fanat_96
Пользователь
 
Регистрация: 09.04.2016
Сообщений: 81
По умолчанию

Спасибо, что-то не заметил эту скобку.
fanat_96 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получить ID der90 SQL, базы данных 2 20.03.2014 15:37
получить данные с бд megostudent БД в Delphi 5 14.05.2013 11:30
Получить кукисы snip4ik Работа с сетью в Delphi 0 04.03.2013 16:39
Не могу получить ID Авторитет JavaScript, Ajax 1 17.03.2012 12:08
Получить последовательность Владимир_король Помощь студентам 3 29.04.2010 10:59