На самом деле я использую PHP, но такое сканирование можно выполнить на любом языке программирования. Будет немного сложно обслужить много ситуаций. Пожалуйста, помогите мне разобраться в проблеме и, пожалуйста, дайте мне некоторое предложение о том, иду ли я в правильном направлении.
Что я знаю, так это текущий URL-адрес, по которому я могу получить список ссылок от <a href="
или от <frame src="
.
Я делаю следующее: из текущего URL-адреса я могу сначала получить корневой URL-адрес, например, из http://www.abc.com/def, я могу сначала получить http://www.abc.com. Это необходимо для ситуации <a href="/fff.html"
, поэтому сначала мне нужно узнать URL-адрес корня.
Во-вторых, мне нужно получить каталог URL-адресов из текущего URL-адреса, это немного сложно, и я до сих пор не знаю, как это сделать идеально. Например, из http://www.abc.com/def/xyz.htm , его URL-адрес: http://www.abc.com/def. Это необходимо для удовлетворения ситуации <a href="../../xyz.html">
.
Проблема, с которой я столкнулся, заключается в том, как получить текущий каталог URL? Например, если текущий URL-адрес http://www.abc.com/def, как я могу на самом деле знаете, что def - это каталог или файл? Если def является файлом, то URL-адрес каталога будет http://www.abc.com. Но если def является каталогом, тогда URL-адрес каталога будет просто http://www.abc.com/def а>.
Вы можете сказать, что если есть наконец "/", то это будет каталог. Но с моей точки зрения, когда я сканирую веб-страницу, я не могу гарантировать, что конструктор веб-страницы добавит «/» в конце URL-адреса каталога. URL-адрес каталога является абсолютно допустимым, например, если def является каталогом, то http://www.abc.com/def, вероятно, означает http://www.abc.com/def/index. HTMLа>.
Поскольку трудно понять, является ли http://www.abc.com/def каталогом или скриптом файл, то трудно сделать полный URL-адрес из относительного href, такого как <a href="xyz.html">
.
Я слишком усложняю проблему? Есть ли какое-нибудь решение для этого?
Существуют и другие ситуации, например, href="# означает привязку, тогда я просто добавлю ее в конец текущего URL-адреса. Является ли это правильным и действительным для любой текущей ситуации с URL-адресом? Это означает, что это действительно для ситуации, когда текущий URL-адрес http://www.abc.com/def (def — это каталог), http://www.abc.com/def#xyz следует преобразовать в http://www.abc.com/def/index.html#xyz ?
А для href="javascript: или href="vbscript: и т. д. я просто проигнорирую это.
А для href="xyz.???", а если ??? является файлом изображения, исполняемым файлом или чем-либо, что не является допустимым html, я просто проигнорирую их?
Спасибо.
Вопрос может быть немного запутанным, надеюсь, я объяснил это ясно.
<img src="...">
. - person chown   schedule 18.09.2011python
, так как ваш выбор кажется произвольным, но оставил PHP, потому что вы говорите, что это то, над чем вы на самом деле работаете. - person agf   schedule 18.09.2011