Я подозрительно отношусь к формату URL. Это похоже на результат проверки строки, а не на то, что мы обычно видим в HTML или при обработке HTML.
С строкой очищенной до того, как я ожидаю, что будет выглядеть в дикой природе, вот как мы будем использовать Nokogiri для разбора HTML, найти содержимое <script>
тега, а затем получить доступ к последней части пути в URL-адресе:
require 'nokogiri'
require 'uri'
doc = Nokogiri::HTML('<html><body><script>window.location.replace("https://www.facebook.com/myuserprofilename");</script></body></html>')
url = doc.at('script').text[/\("(.+)"\)/, 1] # => "https://www.facebook.com/myuserprofilename"
File.basename(URI.parse(url).path) # => "myuserprofilename"
Использование регулярных выражений для поиска конкретного тега <script>
гораздо более подвержено ошибкам, чем при использовании парсера, такого как Nokogiri. Как только тег найден, захват его содержимого легко с помощью text
, а затем его легко можно использовать с помощью метода URI path
. Передавая это File.basename
, вы получаете код, который повторно использует существующие проверенные колеса и более устойчив, так как HTML и URL-адреса слишком изменчивы.
на стороне сервера или клиента? –
рубин, серверная сторона – Tony
Вы используете камень 'nokogiri'? –