Мне нужно получить все изображения, представленные под определенным div, используя Ruby and Mechanize. Соответствующая структура DOM выглядит следующим образом:Извлечение изображений под определенным Div с Механизмом и Рубином
<div id="item_img">
<a href="JavaScript:imageview('000000018693.jpg')">
<img src="/shop/doubleimages/0000000186932.jpg" border="0" width="500" height="500" alt="関係ないコメント z1808">
</a>
<img src="/shop/doubleimages/000000018693_1.jpg"><br><br>
<img src="/shop/doubleimages/000000018693_2.jpg"><br><br>
<img src="/shop/doubleimages/000000018693_3.jpg"><br><br>
</div>
Итак, я сначала получил все изображения после раскручивания нового агента, выполнив:
agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get ('http://double14.com/shopdetail/000000018693/')
puts page.images
Это было приятно, но каждое изображение на странице (как и должно быть), и, похоже, вычеркивает div id над ним, что делает невозможным решение, что происходит от того места. В результате у меня было все изображения на странице (нет буено).
я получил его вниз к этому:
agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get ('http://double14.com/shopdetail/000000018693/')
node = page.search "#item_img img"
node.each do |n|
puts n.attributes['src']
end
К сожалению, выводит следующее -
/shop/doubleimages/0000000186932.jpg
/shop/doubleimages/000000018693_1.jpg
/shop/doubleimages/000000018693_2.jpg
/shop/doubleimages/000000018693_3.jpg
Есть ли способ, чтобы взять полный URL и использовать вместо? В конечном счете, я хотел бы сохранить эти изображения в базе данных, но мне нужен полный URL-адрес для их сериализации на диск для последующей загрузки.
Не могли бы вы просто добавить хост, например 'http: // double14.com/shop/doubleimages/0000000186932.jpg'? –
Я думал, что может быть способ взять полное имя пути с сайта, чтобы я мог вообще избегать относительных имен пути. Если это все, что есть, то это звучит как действительное решение. Спасибо. – JapanRob