我想知道是否有办法检查你有链接的文件的大小?
我已经从一个站点提取了一个图像的路径(带有机械化),并且希望根据文件大小在其上设置一个变为true或false的条件。
page = Mechanize.new.get(http://www.someurl.com/).parser
image = page.search('//img[@id="img1"]/@src').text
现在,我要做的是检查image
的文件大小。
对于本地文件,我可以执行File.size
之类的操作来获取其大小(以字节为单位)。有没有办法检查image
的大小?
答案 0 :(得分:6)
我认为Mechanize#head method会起作用:
image_size = Mechanize.new.head( image_url )["content-length"].to_i
HTTP HEAD
请求是一个鲜为人知的HTTP GET
表兄弟,其中服务器应该使用与执行GET请求相同的标头进行响应,但不包括正文。它经常用于网络缓存。
取自手机/ 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