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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2014, 20:15   #1
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию Некоторые вопросы по скачиванию HTML страницы

Доброго времени суток.
На сайте яндекса есть программа телепередач. Если навести курсор мыши на конкретную передачу, то выпадает маленькое окно с кратким анонсом этой передачи.
При скачивании страницы со списком телепередач, анонс передачи отсутствует. Есть только ссылка на него.
Если скачать страницу по этой ссылке, то скачивается полноценная страница, которая содержит много ненужного мусора. Таким образом, что бы скачать все анонсы ко всем передачам, надо выкачать очень много данных. Это медленно и не эффективно.
Каким образом можно скачать только краткий анонс к передаче?
Может надо выполнить какой то скрипт? Но какой и как выполнить скрипт?
Oleg_SS вне форума Ответить с цитированием
Старый 12.05.2014, 21:39   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

ну не считая того, что вы не качаете стили, скрипты и изображения это немного.
Смотрите сниффером запросы яндекса.
Кольша вне форума Ответить с цитированием
Старый 13.05.2014, 06:06   #3
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

Цитата:
ну не считая того, что вы не качаете стили, скрипты и изображения это немного.
Одна страница весит 2,5 мега (в том числе и скрипты).

Дело в том, что я не вижу обработки события "наведения маши на область" (onmouseover). Есть только обработка события onclick.
Вот типичный кусок странички:

Код:
<div class="b-tv-event b-tv-event_size_s b-tv-event_show-favorites_yes i-bem" onclick="return {&quot;b-tv-event&quot;:{&quot;pId&quot;:223697,&quot;eId&quot;:53393385}}">
<span class="b-tv-event__time">19:50</span>
<span class="b-tv-event-title b-tv-event__title">
<a class="b-link b-link_type_program b-link_region_yes" href="/213/program/223697/event/53393385">Пусть говорят</a></span></div>
При наведении мыши на слова "Пусть говорят" выскакивает маленькое окно с анонсом.

Последний раз редактировалось Oleg_SS; 13.05.2014 в 06:15.
Oleg_SS вне форума Ответить с цитированием
Старый 13.05.2014, 08:00   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я не вижу обработки события "наведения маши на область"
Значит она прописана в JS, который подгружается отдельно. Смотри лучше в отладчике.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2014, 10:26   #5
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Все анонсы телепередач делаются через запрос JSON

такого вида

Код:
http://tv.yandex.ru/ajax/i-tv/get?params={"eventIds":53393280,"lang":"ru"}&cacheKey=events?params={"eventIds":53393280}&resource=events&ncrd=1399961900809
получаешь такой json

см. вложенный файл 1 канал Жить здорово!.txt

Значение 53393280 есть у каждой ссылки передачи (у каждого свое! учти) такого вида

Код:
{&quot;b-tv-event&quot;:{&quot;pId&quot;:2127,&quot;eId&quot;:53393280}}
если перевести из html кода то получаем

Код:
{"b-tv-event":{"pId":2127,"eId":53393280}}
получаешься, чтобы создать запрос json анонса, достаточно знать это значение

тогда его подставить этот запрос

Код:
http://tv.yandex.ru/ajax/i-tv/get?params={"eventIds":Ваше_значение,"lang":"ru"}&cacheKey=events?params={"eventIds":Ваше_значение}&resource=events
и все получается, а там через любой JSON библиотеку обрабатывай и не надо не каких велосипедов создовать
Вложения
Тип файла: txt 1 канал Жить здорово!.txt (11.2 Кб, 126 просмотров)
Если помог: Нажми Весы и оставь отзыв!!!

Последний раз редактировалось Smagulov85; 13.05.2014 в 12:03.
Smagulov85 вне форума Ответить с цитированием
Старый 14.05.2014, 05:49   #6
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Smagulov85 Посмотреть сообщение
Все анонсы телепередач делаются через запрос JSON
Большое спасибо! Почитал про JSON. Стало более менее понятно как это реализовано. Но теперь другой вопрос, как обработать в delphi эти запросы? Как их послать на сервер?
Пишу на Delphi XE5.

Последний раз редактировалось Oleg_SS; 14.05.2014 в 05:51.
Oleg_SS вне форума Ответить с цитированием
Старый 14.05.2014, 13:52   #7
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

Еще раз спасибо! Все получилось. Анонсы выкачиваются.
Теперь пришла мысль. А может через JSON можно всю программу выкачать? И не гонять лишние килобайты?
Не подскажете как это на yandexse устроено?
Oleg_SS вне форума Ответить с цитированием
Старый 14.05.2014, 14:29   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Все анонсы телепередач делаются через запрос JSON
нету тут такого, да и вообще знаю все возможные запросы, среди них такого нет
выдумки какието говорите

Цитата:
Не подскажете как это на yandexse устроено?
я думаю что это знает яндекс
eval вне форума Ответить с цитированием
Старый 14.05.2014, 15:07   #9
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
нету тут такого, да и вообще знаю все возможные запросы, среди них такого нет
выдумки какие-то говорите
По чему вы так считаете? обоснуйте Ваши слова. Вы хоть смотрели сайт?
Если помог: Нажми Весы и оставь отзыв!!!

Последний раз редактировалось Smagulov85; 14.05.2014 в 15:13.
Smagulov85 вне форума Ответить с цитированием
Старый 14.05.2014, 15:11   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

обоснование лежит в знаниях которые лежат в учебниках которые вы не хотите читать
зачем тогда вам обоснование?

ну или так
http://ru.wikipedia.org/wiki/JSON
eval вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопросы по HTML Tolian92 Помощь студентам 5 04.06.2013 11:58
Верстка html страницы skvair HTML и CSS 0 19.02.2012 15:03
Некоторые вопросы по тесту Bags Общие вопросы Delphi 7 06.01.2012 14:39
Вопросы с HTML кодом форм обратной связи Michelle77 Помощь студентам 2 20.10.2009 15:47
Html страницы LineStown Работа с сетью в Delphi 3 11.04.2007 13:16