Net/HTTP get


#1

doc = Hpricot(open(“http://redhanded.hobix.com/index.html”))
images = (doc/“img”)
count = 0

Net::HTTP.start(“redhanded.hobix.com”) do |http|
images.each do |img|
filename = img[‘src’].match(/([^/]+…+)/)
resp = http.get("#{img[“src”]}")
open("#{filename[1]}", “w”) do |file|
file.write(resp.body)
end
count += 1
end
end

So thats fairly simple, because images on _why’s blog are stored as
such: redhanded.hobix.com/images/whatever.w/e

But how would I grab an image if it was, say, on slashdot.com?
(images.slashdot.com/image.jpg)

With my understanding, doing just an http.get(“images.slashdot.etc.”)
wouldn’t work, because it bases it off of the .start? Any help is
appreciated!


#2

On Feb 3, 8:47 pm, Tim M. removed_email_address@domain.invalid wrote:

doc = Hpricot(open(“http://redhanded.hobix.com/index.html”))
images = (doc/“img”)
count = 0

Net::HTTP.start(“redhanded.hobix.com”) do |http|
images.each do |img|
filename = img[‘src’].match(/([^/]+…+)/)
resp = http.get("#{img[“src”]}")

If it’s a full URL then you just have to create a uri object:
http.get(URI.parse(img[‘src’]))

  • Mark.