Введите конкретные данные в базу данных, используя CURL - PullRequest
0 голосов
/ 13 июля 2010

Я новичок в использовании CURL и начинающий PHP-кодер. Я хотел бы взять определенные элементы на веб-странице (которые изменяются через AJAX) и ввести их в базу данных с помощью CURL. На данный момент я могу написать текстовый файл веб-страницы, используя CURL, но я действительно не знаю, куда идти дальше.

Ответы [ 2 ]

0 голосов
/ 13 июля 2010

Обычно это обрабатывается путем очистки страниц с использованием cURL . Если вы последовательно очищаете кучу страниц, я предлагаю использовать семейство функций curl_multi для их параллельного получения. Если вы ищете определенные части страниц, вы можете загрузить HTML-документ в SimpleXMLElement и использовать xpath для запроса конкретных данных.

Единственная проблема, связанная с этим решением, заключается в том, что вы говорите, что вам нужно очистить содержимое AJAX со страницы. cURL взаимодействует только с сервером - он не может запускать JavaScript на стороне клиента. Некоторые приложения AJAX имеют серверный эквивалент содержимого AJAX, которое вы просматриваете (например, http://example.com # test может переводиться в http://example.com/test). Если сайт, с которым вы работаете, не имеет При таком типе сопоставления вы можете попытаться выяснить URL-адреса, с которых загружается содержимое AJAX, и напрямую обработать эти URL-адреса с помощью cURL.

Если вам нужны более продвинутые функции на стороне клиента, обратите внимание на Selenium . Если вы заглянете в «Селен скрин», вы увидите интересных результатов . Я знаю, что в PHPUnit есть интеграция Selenium, на которую стоит взглянуть.

Вот еще один вопрос, касающийся очистки страниц AJAX: Как вы обрабатываете страницы AJAX?

0 голосов
/ 13 июля 2010

Вам нужно сделать то, что называется «соскабливание». Вот небольшой учебник, который я нашел в Google: http://www.oooff.com/php-scripts/basic-php-scraped-data-parsing/basic-php-data-parsing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...