php scraping HTML - проблемы только с IE - PullRequest
0 голосов
/ 22 июля 2010

Я очищаю веб-сайт с HTML с php, который извлекает страницу и удаляет определенные элементы, чтобы показать только фотогалерею. Это работает безупречно для каждого браузера, НО любая версия IE (типичная;)). Мы можем решить эту проблему, переписав файл .css, но не можем внедрить его в заголовок php, поскольку он будет перезаписан файлом .css с сервера веб-сайтов. Как мы будем размещать собственную версию файла .css, чтобы наш сайт отображался в НАШЕЙ версии? Будет ли что-то поменять с фильтром?

Ура!

Ответы [ 4 ]

4 голосов
/ 22 июля 2010

Вы понимаете, что на самом деле это не проблема соскоба? Это звучит как прямая проблема с отображением страницы.

Беспокойство по поводу соскоба может быть из-за красной сельди. После того, как вы очистили, у вас есть немного HTML (и, возможно, немного CSS) ... это подтверждается на W3C? Я понимаю, что это не гарантия, но это показатель (я знаю, что IE не всегда правильно отображает действительные страницы, но иногда это «недоразумение», когда другие браузеры, кажется, правильно отображают неверный HTML / CSS).

Если это действительно так, то, возможно, вам стоит оглянуться назад. Если вы уже removes certain elements to only show a photo gallery, то, возможно, вы также можете удалить CSS из заголовка HTML (или где-либо еще) и добавить его к своему собственному?

3 голосов
/ 22 июля 2010

Если вы уже удаляете сайт, почему бы просто не использовать PHP, чтобы пропустить их CSS-файл и написать свой собственный вместо него?Кроме того, вы можете написать свой собственный файл CSS чуть ниже их в <head>, чтобы он переписывал их стили.

2 голосов
/ 22 июля 2010

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

Действительно, вам, вероятно, стоит внимательно посмотреть на источник исходной страницы и отформатированный источник рядом. Вы могли бы извлечь что-то, что должно быть оставлено.

Вы спрашиваете, как вы можете удалить их CSS ... вы делаете это так же, как вы удаляете другие элементы, которые вы извлекаете. Просто извлеките теги стилей и теги, которые ссылаются на таблицы стилей.

Кроме того, я просто написал бы несколько стилей, чтобы исправить это, и вставил их в любое место после вызова существующего CSS. (Как и все остальные, упомянутые здесь)

1 голос
/ 22 июля 2010

Просто добавьте еще один CSS-заголовок и отметьте ваши стили как! Важные для переопределения исходных?

...