Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> c# парсинг 
:(
    Опции темы
cppGhost
Дата 5.4.2014, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.4.2013

Репутация: нет
Всего: нет



Доброго времени суток. Вообще не знаю насколько корректно спрашивать такие вещи, но ситуация такая. Для работы решил автоматизировать процесс сбора информации по яндекс директу. Вот эту страницу я хочу "прочитать" программно. делаю примерно так
Код

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = null;
                if (response.CharacterSet == null)
                    readStream = new StreamReader(receiveStream);
                else
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                string data = readStream.ReadToEnd();

                if (true == data.Contains("b-phrases__info"))
                {
                    string g = "fff";
                }

                response.Close();
                readStream.Close();
            }
 
но в html коде страницы нет информации, которая отображается в главной таблице. как еще тогда можно эту таблицу прочитать, чтобы потом обрабатывать? спасибо
PM MAIL   Вверх
cppGhost
Дата 5.4.2014, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.4.2013

Репутация: нет
Всего: нет



Хотя я не понимаю, ведь клиент по сути получает html код, котоырй должен отобразить. Но при этом этой таблицы в явном виде нет. В чем тут хитрость, тоже хотелось бы узнать. Ведь через chrome->инструменты_разработчика я код этой таблицы вижу

Это сообщение отредактировал(а) cppGhost - 5.4.2014, 22:34
PM MAIL   Вверх
crz
Дата 5.4.2014, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.6.2007

Репутация: нет
Всего: 1



Когда вы заходите через браузер, вы ведь авторизированы в яндексе ? А когда скачиваете html код страницы , то не авторизированы, может быть разница в этом ?
PM MAIL   Вверх
Cheloveck
Дата 6.4.2014, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



К тому же табличка строится javascript`ом.


--------------------
user posted image
PM Jabber   Вверх
cppGhost
Дата 6.4.2014, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.4.2013

Репутация: нет
Всего: нет



по поводу авторизации: я сравнивал результат, полученный программно и просмотр кода страницы в брауузере. и результат вроде одинаковый. а вот по поводу js, каким тогда инструментом вообще возможно выцепить эту табличку?
PM MAIL   Вверх
Cheloveck
Дата 6.4.2014, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(cppGhost @  6.4.2014,  09:21 Найти цитируемый пост)
по поводу авторизации: я сравнивал результат, полученный программно и просмотр кода страницы в брауузере. и результат вроде одинаковый. 

Повторяю ещё раз, таблица строится javascript`ом. Изначально старница выглядит одинаково для залогиненного и незалогиненного пользователя. Дальше js шлёт ajax запрос и получает данные только для залогиненного пользователя и строит таблицу. То, что тебе показывает браузет, когда ты просишь исходный код страницы, -- это изначальный html, без таблицы.

Цитата(cppGhost @  6.4.2014,  09:21 Найти цитируемый пост)
по поводу js, каким тогда инструментом вообще возможно выцепить эту табличку? 

Только браузером или отдельным js-движком. При этом надо помнить, что этот скрипт будет делать ajax-запрос, которому нужны твои авторизационные куки. 
Ответ ajax-запроса, кастати, зашифрован, так что слать руками запрос тоже не вариант.

Я бы тебе посоветовал бросить заниматься *рнёй и поискать нужные API, например тут

Это сообщение отредактировал(а) Cheloveck - 6.4.2014, 10:56


--------------------
user posted image
PM Jabber   Вверх
cppGhost
Дата 6.4.2014, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 24.4.2013

Репутация: нет
Всего: нет



спасибо за ссылку, но, боюсь, что мне не подойдет, так как там стоят ограничения. а мои нужды в них сильно не вписываются. в принципе у меня родилась такая идея (хоть это и есть "заниматься *рней"). я открываю окошка браузера, имитирую клик на текстовом поле, имитирую ввод с клавиатуры, имитирую клик на кнопке. нужная мне цифра  из статистики находится всегда в одном и том же месте (имею в виду координаты на мониторе), поэтому можно попробовать распознать цифры прямо с экрана. насколько такое реально?

Это сообщение отредактировал(а) cppGhost - 6.4.2014, 13:36
PM MAIL   Вверх
Cheloveck
Дата 6.4.2014, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(cppGhost @  6.4.2014,  14:35 Найти цитируемый пост)
я открываю окошка браузера, имитирую клик на текстовом поле, имитирую ввод с клавиатуры, имитирую клик на кнопке.

http://watin.org/
http://docs.seleniumhq.org/


--------------------
user posted image
PM Jabber   Вверх
crz
Дата 6.4.2014, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 1.6.2007

Репутация: нет
Всего: 1



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.