Добрый вечер!
Подскажите пожалуйста, как можно спарсить страницу, которая сгенерированна JS (взять к примеру даже этот форум)?
Пробовал четырьмя способами...
1.) code_26461.txt
2.) code_26462.txt
3.) code_26463.txt
4.) code_26464.txt
Конечно же я понимаю, что разницы между ними (способами) практически нет, возможно и совсем нет, но всё-же, понятия не имею, как по другому...
Заранее спасибо за помощь
Этот топик читают: Гость
Ответов: 41
Рейтинг: 3
|
|||
карма: 1 |
| ||
файлы: 4 | code_26461.txt [426B] [116], code_26462.txt [294B] [95], code_26463.txt [545B] [109], code_26464.txt [286B] [103] |
Ответов: 5446
Рейтинг: 323
|
|||
Для конкретно этого форума есть более простой способ общения (ищуший да обряшет ). В общем случае можно попытаться скормить полученную страницу браузеру, и через DOM API работать. Компонентов для DOM в стандартном наборе нет (надо писать IC)
|
|||
карма: 1 |
|
Ответов: 1731
Рейтинг: 68
|
|||
мой вариант не работает.
|
|||
карма: 1 |
|
Ответов: 41
Рейтинг: 3
|
|||
iarspider, данный форум был примером, не более
Cosinus, да-да, вариант с браузером тоже не работает... Будем надеяться, что есть ещё варианты. |
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
minos, в разделе "Строки" несколько компонентов для поиска в тексте есть, например: code_26465.txt
|
|||
карма: 19 |
| ||
файлы: 1 | code_26465.txt [1.7KB] [139] |
Ответов: 41
Рейтинг: 3
|
|||
Леонид, эмм, а причём тут поиск? Я же точно такой же пример привел, второй..., только без поиска.
|
|||
карма: 1 |
|
Ответов: 1731
Рейтинг: 68
|
|||
Леонид, ему нужен код страницы после работы JS, но мне кажется, что не получится.
Так как надо этот JS отработать, а WebBrouser отработанный JS в код не выдает. |
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
minos писал(а): как можно спарсить |
|||
карма: 19 |
|
Ответов: 3889
Рейтинг: 362
|
|||
minos, есть одно оочень извращённое суровое решение, которое я в прошлом году давал tom-it для его конвертора WIKI в CHM, но боюсь, индусы сочтут за национальное оскорбление, страшно публиковать
|
|||
карма: 1 |
|
Ответов: 41
Рейтинг: 3
|
|||
1nd1g0, ну, кхм, в связи с отсутствием абсолютно какого-либо выбора, думаю вас простят
|
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
minos, сразу предупреждаю, определение конца отработки всех скриптов - очень и очень непростая задача (фактически на многих сайтах они не прекращают работать до самого закрытия). onProgress тут помогает только косвенно. Но есть пространство для манёвра, например, при большом желании, можно делать свой, внедрённый в страницу скрипт, гарантирующий определение момента отработки жертвы, это уже Ваша забота.
|
|||
карма: 1 |
| ||
Голосовали: | minos, Konst |
Ответов: 41
Рейтинг: 3
|
|||
1nd1g0, опробовал вашу схемку, не работает, но я немного изменил, так, чтобы проверить, и в общем-то...работает, странно конечно, но работает, ну чтож, посмотрим, что я смогу из этого слепить, спасибо вам.
[offtop]То, что вы написали, как-то не очень понятно, похоже на гугл транслейт [/offtop] P.S. Ну если у кого-то вдруг есть ещё какие-либо решения данной проблемы, я буду только рад |
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
minos писал(а): опробовал вашу схемку, не работает, но я немного изменил, так, чтобы проверить, и в общем-то...работает, странно конечно, но работаетОчень сильно зависит от привилегий, настроек и версии браузера IE (32 битной версии), установленного в системе, но работать должно и без изменений, что Вы там такого изменили, что вдруг, к невероятному Вашему удивлению, заработало? ------------ Дoбавленo в 04.12: minos писал(а): если у кого-то вдруг есть ещё какие-либо решения данной проблемы, я буду только радУ меня этих решений было несколько, но самое надёжное я Вам уже предоставил. Ещё с OLEDOM можно работать через WSH, но быстро выяснилось, что там у браузера по умолчанию понижен уровень привилегий и скрипты в страницах заблокированы, равно как и ActiveX. Допускаю, что это решаемо, но лишнего времени экспериментировать пока нет. |
|||
карма: 1 |
|
Ответов: 41
Рейтинг: 3
|
|||
1nd1g0, да уж неважно что я изменил, как я посмотрел, вы тоже поправили код, теперь он ещё лучше работает
Главное, чтобы этот способ работал всегда и без изменений... ------------ Дoбавленo в 00.29: Попробовал сделать, всё работает, но когда попробовал несколько страниц спарсить, то это печально закончилось, какой-то там прогресс уж оочень чувствительный, что не так, так не то, чтобы не работает, так сразу зависает |
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
minos, а я предупреждал, что браузер не позволяет адекватно следить за прогрессом, это - самое сложное во всей затее. Усугубляется всё тем, что браузер работает в отдельном, независимом потоке (COM-сервер), по-этому парсер для ajax2html, рассчитанный на обработку множества html-файлов в папке (wiki), использует не менее суровый метод синхронизации потоков, отдан на проверку tom-it, может эта франкенсхема даже увидит свет когда-нибудь В общем, SafeMode и Events Вам в помощь, Индия рядом
|
|||
карма: 1 |
|