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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2013, 12:32   #1
danil031997
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 15
Подмигивание Как спарсить информацию в спойлере?

Здравствуйте, у меня такая проблема:

1) Нужно спарсить информацию в спойлере, но пока не откроешь спойлер, то не спарсишь. (причем нужно спарсить все спойлеры на странице)

- Как я понимаю, чтобы спарсить, нужно открывать программно все спойлеры на странице, и парсить, но как открыть я беспонятия

Пример вот тут, оттуда нужно спарсить содержимое всех спойлеров.

вид содержимого спойлера что-то вроде:

Код HTML:
<embed src="http://video.rutube.ru/321c98ea1b9d8604c9d2cc108414d0d7" type="application/x-shockwave-flash" wmode="window" allowfullscreen="true" height="450" width="600">
И было-бы не плохо сразу спарсенную информацию превращать в вид:

Код HTML:
[spoiler=Тут название спойлера][center]Тут содержимое спойлера[/center][/spoiler]
danil031997 вне форума Ответить с цитированием
Старый 13.10.2013, 15:00   #2
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Если информация грузится динамически по мере нажатия джава-скриптами - надо использовать TWebBrowser и оттуда брать текст уже после перехода на конкретную страницу и перещелкав все что надо.
Сам 2 недели назад бот один писал для сайта, иначе никак. TIdHttp не умеет работать с скриптами.
А как парсить - уже дело твое. В интернете куча способов, я же писал алгоритм на основе pos'ов.
Про сумму строк в дельфях и как к отпарсеной инфе пару слов добавить - промолчу.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 13.10.2013, 17:58   #3
danil031997
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 15
По умолчанию

Цитата:
Сообщение от alextrof94 Посмотреть сообщение
Если информация грузится динамически по мере нажатия джава-скриптами - надо использовать TWebBrowser и оттуда брать текст уже после перехода на конкретную страницу и перещелкав все что надо.
Сам 2 недели назад бот один писал для сайта, иначе никак. TIdHttp не умеет работать с скриптами.
А как парсить - уже дело твое. В интернете куча способов, я же писал алгоритм на основе pos'ов.
Про сумму строк в дельфях и как к отпарсеной инфе пару слов добавить - промолчу.
Спасибо за наводку
danil031997 вне форума Ответить с цитированием
Старый 13.10.2013, 18:16   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

alextrof94, отличный метод, для новичка самое то.
Берешь Thttpsend грузишь страницу, Tregexpr'ом парсишь все, что тебе угодно и откуда подгружается и куда, и зачем.
Кольша вне форума Ответить с цитированием
Старый 13.10.2013, 20:36   #5
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от Кольша Посмотреть сообщение
alextrof94, отличный метод, для новичка самое то.
Берешь Thttpsend грузишь страницу, Tregexpr'ом парсишь все, что тебе угодно и откуда подгружается и куда, и зачем.
Я где то тут про js обновляемые страницы спрашивал и про то как с этим работать. BDA ответил, что tidhttp с js не работает, а вот через wb это осуществить легко и просто.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 13.10.2013, 21:12   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
alextrof94, отличный метод, для новичка самое то.
Берешь Thttpsend грузишь страницу, Tregexpr'ом парсишь все, что тебе угодно и откуда подгружается и куда, и зачем.
C AJAX это не прокатит, даже в WB надо дергать соотв. js-функции. Сабж асинхронный, и пока юзер не раскроет тот же споилер, ничегошеньки "под споилером" просто не существует. Страница не перезагружается вся, а просто динамически дополняется с сервера. Очень удобно.
Человек_Борща вне форума Ответить с цитированием
Старый 14.10.2013, 03:07   #7
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
C AJAX это не прокатит, даже в WB надо дергать соотв. js-функции. Сабж асинхронный, и пока юзер не раскроет тот же споилер, ничегошеньки "под споилером" просто не существует. Страница не перезагружается вся, а просто динамически дополняется с сервера. Очень удобно.
Если посмотреть на предыдущий мой ответ, можно найти строку:
"Если информация грузится динамически по мере нажатия джава-скриптами - надо использовать TWebBrowser и оттуда брать текст уже после перехода на конкретную страницу и перещелкав все что надо."
Я имел ввиду программно выполнить щелчки по нужным "спойлерам".
UPD: Ой, сори, Человек_Борща, я увидел мое имя в начале и подумал мне адресовано =)
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 14.10.2013, 05:11   #8
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Человек_Борща, почему же не прокатит? если url подгрузки можно спарсить, то можно.
Кольша вне форума Ответить с цитированием
Старый 14.10.2013, 11:08   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
если url подгрузки можно спарсить, то можно.
Его может и не быть вовсе, не то уже время когда нужны прямые ссылки, да и упакованный JS очень сложен в разборе тем более в понимании.

Цитата:
Я имел ввиду программно выполнить щелчки по нужным "спойлерам".
Даже если получится, то надо как-то оповещать браузер об этом, стандартных событий он не имеет.

Последний раз редактировалось Человек_Борща; 14.10.2013 в 11:11.
Человек_Борща вне форума Ответить с цитированием
Старый 14.10.2013, 16:56   #10
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

А можно просто разобрать все скрипты, подумать, и сообразить с idhttp
Здравствуйте
NEoMASTERR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт конвертера валют или как корректно спарсить xml miscwrk JavaScript, Ajax 1 22.04.2012 06:11
[Вопрос] Как спарсить ссылки которые выдаёт поисковик O'NeiLL Общие вопросы Delphi 8 15.03.2012 19:45
Как получить информацию о БД? Belarus SQL, базы данных 1 14.07.2010 19:09
Как считать информацию с CD\DVD? Bullterrier Общие вопросы Delphi 3 12.01.2010 00:13
как загружать информацию с сайта lg12 Работа с сетью в Delphi 2 05.08.2009 15:24