4

我想知道是否有办法检查你有链接的文件的大小?

我已经从站点中提取了图像(使用机械化)的路径,并希望对其设置一个条件,根据文件大小变为真或假。

page = Mechanize.new.get(http://www.someurl.com/).parser
image = page.search('//img[@id="img1"]/@src').text

现在,我要做的是检查image. 对于本地文件,我可以做一些事情,比如File.size以字节为单位。有什么方法可以检查大小image吗?

4

1 回答 1

6

我认为Mechanize#head 方法会起作用:

image_size = Mechanize.new.head( image_url )["content-length"].to_i

HTTPHEAD请求是 HTTP 的一个鲜为人知的表亲GET,其中服务器应该使用与执行 GET 请求相同的标头进行响应,但不包括正文。它经常用于网络缓存。

更多关于 HTTP HEAD

来自 Mobile Phones/eBay 的示例(由 Arup Rakshit 要求)

start_url = 'http://www.ebay.in/sch/Mobile-Phones-/15032/i.html'
crawler = Mechanize.new
page = crawler.get( start_url ).parser
image_url = page.search('//img/@src').first.text
image_size = crawler.head( image_url )["content-length"].to_i
 => 4244
于 2013-10-15T11:54:30.673 回答