Как я могу использовать PHP для извлечения данных с другого сайта и сохранения их в базе данных MySQL? - PullRequest
1 голос
/ 17 августа 2011

Мне нужно получить данные с веб-сайта с использованием PHP и сохранить их в базе данных MySQL.Я также хочу получить изображения и сохранить их на своем сервере, чтобы я мог отобразить их на своем сайте.Я слышал, что для этого можно использовать API, но я хотел бы знать, могу ли я сделать это с помощью CURL.Я хочу получать огромное количество данных ежедневно, поэтому будет ли использование CURL потреблять большое количество ресурсов на стороне сервера?Какие существуют другие методы для извлечения данных?

1 Ответ

1 голос
/ 18 августа 2011

Я думаю, что это больше вопрос переполнения стека, но я постараюсь ответить.

Из того, что вы говорите, кажется, что вам нужен универсальный сканер. Есть несколько решений. И написать свой относительно легко.

Проблема в том, что php и curl работают медленно. И, скорее всего, вы можете ввести проблемы с памятью и время выполнения скрипта. Php просто не предназначен для работы в бесконечном цикле.

Как мне это сделать с пользовательским сканером:

Респект robots.txt! Уважайте количество подключений!

Php: сверните URL, загрузите его в dom (ленивый) или проанализируйте все теги (для следующих ссылок), затем загрузите все теги img. Добавьте тег hrefs в hashmap и очередь. hashmap не пересматривать уже посещенные. Очередь - на следующую работу. Промыть, повторить и вы в деле.

Java: сканер Webdriver + chrome + browsermob может быть выполнен в несколько строк кода. и вы поймете некоторые вещи, которые вы пропустите. Медленно, но легко и лениво. Вы будете перехватывать все изображения прямо с прокси.

Java / C #: правильный, асинхронный, высокопроизводительный сканер с чем-то наподобие magestic 12 html parser сзади. Вы можете обработать до 2000 страниц в минуту и ​​выиграть вечную ненависть любого веб-мастера.

Вы также можете взглянуть на lucent - часть проекта apache.

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