Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272

Некорректный парсинг html страницы

29.04.2015, 00:24. Показов 972. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрых времени суток. По этому адресу тык нужно выбрать все что находится в теге <div class="market_listing_buy_button"> Делаю это так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void button1_Click(object sender, EventArgs e)
        {
            string ur = "http://steamcommunity.com/market/listings/730/AWP%20|%20Safari%20Mesh%20%28Field-Tested%29";
            HttpWebRequest requestmail = HttpWebRequest.Create(ur) as HttpWebRequest;
            HttpWebResponse responsemail = (HttpWebResponse)requestmail.GetResponse();
            StreamReader myStream1 = new StreamReader(responsemail.GetResponseStream(), Encoding.UTF8);
            string page1 = myStream1.ReadToEnd();
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.Load(new StringReader(page1));
            var dataBlock = doc.DocumentNode.SelectSingleNode("//div[@class=\"market_listing_buy_button\"]");
 
        }
Смотрю в отладчике - свойство InnerHtml переменной dataBlock всегда равно или 1й записи(а нужно получить столько записей сколько есть на странице) или вообще пусто, что я делаю не так?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.04.2015, 00:24
Ответы с готовыми решениями:

Парсинг html кода страницы
Допустим есть некая страница, у которой html &lt;head&gt; &lt;body&gt; &lt;b&gt;ololo&lt;/b&gt; &lt;/body&gt; &lt;/head&gt; мне нужно, поставить if loop...

Парсинг HTML страницы - WebClient не загружает ее должным образом
Всем доброго времени суток. Хочу полностью спарсить страницу в переменную. Вебклиент не загружает ее должным образом. Как спарсить всю...

Парсинг страницы
Помоги пожалуйста, как правильно спарсить информацию (В красной области). Страница сайта:...

5
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
29.04.2015, 00:32
llFreeManll, SelectSingleNode даже исходя из названия метода можно понять, что он выбирает единственный узел, соответствующий паттерну. Поищи метод с названием SelectNodes или что-то в этом роде(не помню точно как он называется).
0
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
29.04.2015, 00:37  [ТС]
diadiavova, блин точно, скопринул из старого проекта и не заметил
Ладно, с этой частью проблемы все понятно, но почему иногда InnerHtml пустое, хотя так быть не должно.
0
Warrior
 Аватар для _exp10der_
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
29.04.2015, 20:19
Вот считает количество

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
 
namespace ConsoleApplication3
{
    internal class Program
    {
        private static void Main()
        {
            MainAsync().Wait();
        }
 
        private static async Task MainAsync()
        {
            var client = new HttpClient();
            string str =
                await
                    client.GetStringAsync(
                        "http://steamcommunity.com/market/listings/730/AWP%20|%20Safari%20Mesh%20%28Field-Tested%29");
 
            var doc = new HtmlDocument();
            doc.LoadHtml(str);
 
            int q =
                doc.DocumentNode.SelectSingleNode(".//*[@id='searchResultsRows']")
                    .SelectNodes("//div[2]/div/a/span[2]")
                    .Count;
 
            Console.WriteLine(q);
 
            Console.ReadKey(true);
        }
    }
}
Вложения
Тип файла: rar count.rar (1.73 Мб, 3 просмотров)
1
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
01.05.2015, 11:46  [ТС]
_exp10der_, а можете пожалуйста сказать как работает эта запись?
C#
1
2
doc.DocumentNode.SelectSingleNode(".//*[@id='searchResultsRows']")
                    .SelectNodes("//div[2]/div/a/span[2]")
0
Warrior
 Аватар для _exp10der_
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
01.05.2015, 20:06
читай про язык XPath
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2015, 20:06
Помогаю со студенческими работами здесь

Парсинг страницы
Вообщем есть ссылка http://vk.com/wall-&quot;+ ID группы/+&quot;?own=1 Пример http://vk.com/wall-1234567?own=1 ...

Парсинг страницы
Я не очень опытен, поэтому извиняйте, если написал полнейший бред. Есть некая страница. С неё нужно получить 3 значения, изменяющихся...

Парсинг HTML
Необходимо представить HTML код в естественном виде, исключительно текстом. Каким способом лучше всего заменить специальные символы HTML?...

Парсинг html
Собственно с регулярками я разобрался, но возникает другой вопрос: есть такой html код: &lt;tr&gt; &lt;td...

Парсинг со страницы
Есть пара вопросов. Сейчас парсю один интернет-магаз, там есть куча переменных в формате &quot;data-price='xxx' &quot; (заметьте, кавычки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru