Jeg prøver å vise informasjon om USPS Shipping Zone, men delen av USPS-siden jeg brukte til å skrape denne informasjonen fra, er brutt i flere måneder, og jeg lurer på om noen vet en annen måte å få det til i et analyserbart format?
Siden som har blitt ødelagt i flere måneder er her: http://postcalc.usps.gov/Zonecharts/ZoneChartPrintable.aspx?zipcode=931
De har samme diagram i et ikke så analyserbart format her: http://postcalc.usps.gov/Zonecharts/
Jeg lager denne informasjonen slik at den ikke trenger å bli bedt om kontinuerlig, men hurtigbufferen tømmes av og til siden sonene endres fra tid til annen.
Svar
Her er koden jeg bruker for å hente JSON-dataene som fyller http://postcalc.usps.gov/Zonecharts/ .
private String getZoneJSON(String zip3Digit) { URL url; HttpURLConnection con; String zoneJSON = null; try { url = new URL("https://postcalc.usps.com/DomesticZoneChart/GetZoneChart?ZIPCode3Digit=" + zip3Digit + "&ExcelFormat=1"); con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"); con.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"); con.setRequestProperty("DNT", "1"); con.setInstanceFollowRedirects(false); InputStream h = (InputStream) con.getContent(); BufferedReader r = new BufferedReader(new InputStreamReader(h)); zoneJSON = r.readLine(); } catch(Exception e) { e.printStackTrace(); } return zoneJSON; }
Kommentarer
- Dette er perfekt, takk. Jeg hadde ikke Jeg har ikke vært tilbake for å se gjennom det nye nettstedet deres på en stund, men er glad for at de serverer en JSON-streng nå i stedet for å måtte analysere HTML.
Svar
Du kan også beregne sonen basert på avstanden mellom koordinatens opprinnelse SCF (Sectional Center Facility) og destinasjonen SCF
Sone 1 : Ikke-lokale soner innen 50 mils radius fra opprinnelsespunktet
Sone 2: 51-150 miles radius
Sone 3: 151-300 miles radius
Sone 4: 301-600 miles radius
Sone 5: 601-1,000 miles radius
Sone 6: 1001-1400 miles radius
Sone 7: Radius 1401-1800 miles
Sone 8: 1801 miles og over
Sone 9: Postnummer tildelt for eksepsjonelle nettverksforhold
- Du kan bøtelegge SCF for hvert postnummer her: https://fast.usps.com/fast/fastApp/resources/labelListFiles.action
- Du kan få koordinatene til SCF fra Google API
- Når du har koordinatene, er det mange måter for å beregne avstanden mellom dem
- Du kan også hoppe over koordinatene og bare beregne avstanden mellom postnummerene til SCF selv (ikke postnummerene den serverer)
Svar
USPS selger et fullsone diagram for alle fra-til-zip-kombinasjoner for $ 63 her: https://postalpro.usps.com/operations/zone-charts
Jeg sendte inn for en siden jeg ikke har vært i stand til å finne info dette noe annet sted i flere måneder nå.