Сделав сканирование, перейдите в массив и добавьте предыдущий текст в ruby. - PullRequest
0 голосов
/ 26 января 2011

Хорошо, вот мой код:
(@wsource - введенный исходный код сайта)

@barray  = @wsource.scan(/(xxxx:|[\/|.|\w|\s]*\.(?:jp?g|gif|png))/i)  
puts @barray.collect! {|x| "http:" + x}

Сначала @wsource сканирует URL-адреса изображений. Затем они возвращаются без предшествующего http: (что должно быть там). Попытка сделать строку 2 возвращает

C:/Users/myself/workspace/Test/ripper.rb:51:in `+': can't convert String into Array (TypeError)

Хотя в ruby ​​docs сказано, что .scan возвращает массив, похоже, здесь возвращается строка. Любая помощь, с регулярным выражением или добавлением http: оценен!

1 Ответ

1 голос
/ 26 января 2011

В "http:" + x, x - массив захватов. Попробуйте вместо этого: "http:" + x.first

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...