Я хочу создать скрипт, который сканирует веб-сайт, и он должен вернуть места всех баннеров, показанных на этой странице.
Расположение баннеров в большинстве случаев происходит из известных доменов. Но баннеры не находятся в HTML как простой образ или swf-файл. В большинстве случаев Javascript используется для показа баннера.
Поэтому, если из домена баннера загружается файл .swf или файл изображения, он должен вернуть этот URL-адрес.
Можно ли это сделать? И как я мог сделать это примерно?
Лучше всего было бы, если оно также может вернуть целевую страницу этого объявления. Как это решить?
Вы можете использовать селен, чтобы открыть страницы в реальном браузере, а затем получить доступ к DOM.
PhantomJS также может стоить внимания – это безголовая версия WebKit (движок Chrome, Safari и т. Д.).
Тем не менее, ни одно из этих решений не является чистым php – если это требование, вам, вероятно, придется писать свой собственный движок JavaScript в PHP (это ничего, что я бы попросил моего худшего врага);
Чтобы получить результат JavaScript, вам понадобится механизм JavaScript (например, V8 Engine от Google). Двигатель V8 написан на C ++, но есть некоторые ресурсы, которые говорят о том, что вы встраиваете движок V8 в PHP .
С учетом сказанного вам нужно изучить результат «вручную» и точно определить, что можно очистить и как его идентифицировать. После того, как вы определили некоторый общий синтаксис рекламных баннеров, вы можете написать сценарий для извлечения баннера и целевой страницы, на которую ссылаются.
Ничего из этого нелегко, но если у вас есть пример объявления, которое вы хотите собрать, я могу дать вам больше советов.