2012-03-16 2 views
0

Я хочу удалить все внешние ресурсы из html-файла. Я использую wget для создания локальных копий страницы. У Wget есть опции для преобразования ссылок в локальную файловую систему, и это вполне нормально, но все же некоторые ссылки (в конце глубины загрузки, я считаю) сохраняют их внешние src, поэтому они содержат http.Удалить все внешние ресурсы из HTML с помощью Nokogiri

Ближайший я мог бы получить, чтобы найти все, что содержит HTTP использует это:

doc.search ("// * [начинается-с (@href, 'HTTP')]")

Но это просто находит элементы href, а http также может быть в изображениях, видео и любом другом. Любые идеи, что было бы правильными инструкциями для Нокогири, чтобы рассказать мне все, что содержит http?

Спасибо.

ответ

2

Если вы просто хотите расширить свой поиск до элементов с любой атрибут, начиная с «HTTP», вы можете сделать это:

doc.search("//*[@*[starts-with(.,'http')]]") 
+0

Привет, спасибо так много! Для моих нужд мне пришлось немного изменить его, чтобы получить все, что содержало http. Но ваш код поставил меня в путь. Я использую теперь doc.search ("// @ * [start-with (., 'Http')]" – Pod

+0

Разница в том, что мой оператор XPath (теперь опечатанный) находит все * элементы * с любыми атрибутами, начиная с 'http', в то время как ваши находят только сами атрибуты *. Либо все в порядке, это зависит только от того, что вы будете делать со спичками. –