#!/usr/bin/env ruby
require 'net/http'
conn = Net::HTTP.new('trkcnfrm1.smi.usps.com', 80)
path = '/PTSInternetWeb/InterLabelInquiry.do'
data = "strOrigTrackNum=#{ARGV[0]}"
headers = {
'Referer' => 'http://www.usps.com/shipping/trackandconfirm.htm?from=home_header&page=trackandconfirm',
'Content-type' => 'application/x-www-form-urlencoded'
}
resp, body = conn.post(path, data, headers)
history = body.grep(/<td valign="top" class="mainTextbold"/)
history.each do |item|
item.strip!
item.gsub! /<td[^>]+>/, ''
item.gsub! /<\/td>/, ''
end
status = body.grep(/Status: <span class="mainTextbold">/)[1]
status = status.strip.gsub(/Status: <span class="mainTextbold">/, '').gsub(/<\/span><br><br>/,'')
puts "Item status: #{status}"
puts "\nItem history:"
history.reverse.each { |item| puts " * #{item}" }
Tudom, hogy lehetne optimálisabb is a kódja, meg ellenőrzések is kellenének... de ez csak össze lett lapátolva. Majd egyszer.
Ha valaki továbbfejlesztené, tudok adni eredeti html dumpot - privátban.
Jó csomagkövetést.
- hrgy84 blogja
- A hozzászóláshoz be kell jelentkezni
- 3783 megtekintés