2011-01-06 4 views
1

Моя проблема: мне нужно загружать страницу cURL, которая использует поиск по Ajax, чтобы получить результаты этого поиска. И мне нужно организовать задержку между curl_exec() и возвратом стоимости. Другими словами, мне нужно выполнить curl_exec() не менее 5 секунд. sleep(), похоже, перестает выполнять завиток и не работает. будет очень признателен за любую подсказку или ключЗадержка загрузки PHP cURL

UPD Я не знаю, как, но на этой странице http://vkontakte.ru/gsearch.php?section=video&q=sample&name=1, но она требует учетной записи для доступа завитка ДЕЛАЕТ захватить поиск сделанных AJAX. Но если страница слишком долго загружалась, Ajax возвращает "action was too fast". Поэтому мне просто нужно продлить выполнение завитка. Извините, если неясно.

ответ

0

Используйте FireBug (см. Вкладку Net) или другое средство для захвата запроса Ajax и просто закрутите данные запроса.

+0

Спасибо, я попробую. Но я действительно надеюсь, что можно что-то сделать только с завитом. – lasquarte

0

Когда вы скручиваете страницу, вы получите ответ html. Любое изменение javascript, сделанное в html, не будет сделано, ожидая какое-то время - это изменение, сделанное браузером.

Что вы можете сделать, это найти код, который делает запрос информации внутри вашего html (как упоминалось Serg ikS с использованием FireBug). А затем сделайте вторую завитушку.

Некоторые веб-сайты делают эти запросы настолько загадочными, насколько это возможно, чтобы предотвратить скрипинг экрана, поэтому это может быть не так просто.

Надеюсь, что это поможет.

UPDATE

Я пытался воспроизвести вашу ошибку, но безуспешно. Я могу войти в систему, и html отображает все результаты ... Единственное, что я замечаю, это то, что иногда он выполняется довольно медленно.

Здесь я разобраны все результаты поиска (с помощью PHP/Curl):

(нажмите, чтобы увеличить)

+0

О, спасибо за столько посвящения. Ну, моя проблема в том, что она выполняется довольно медленно, точно :) Если вы попытаетесь загрузить следующий результат поиска и предыдущий, не загруженный, эта ошибка возникает. Большое спасибо за такой интерес к моей проблеме. – lasquarte

+0

Так что, если это не способ замедлить выполнение завитка, я буду придерживаться решения разбора небольшими битами и переписывать его с FireBug в будущем :) Спасибо – lasquarte

+0

hmm, возможно, существует ограничение на количество запросов сервера за единицу времени .. за ip. –

1

Curl не в состоянии захватить Ajax запрос. Может быть, вы можете проксифицировать ответ с помощью скрипта Python, который использует модуль webkit? (https://trac.webkit.org/wiki/PythonGuidelines)

+0

Ответ Flyingswissman правильный, и так далее. Однако это предполагает возможное и интересное решение. – bogeymin

+0

Извините, но это кажется слишком сложным. Интересно, хотя :) – lasquarte

Смежные вопросы