Tai buvo gera saulėta diena Seattle, ir mano žmona norėjo turėti garsiąją viruso Dubajus Šokoladas Pistachio Shake. Su jauduliu, mes nusprendėme aplankyti artimiausią Shake Shack, ir mūsų nuostabai, jis buvo parduotas, ir mums buvo pasakyta paskambinti jiems prieš apsilankant. Nėra jokios garantijos, kad jis bus prieinamas kitą dieną taip pat dėl ribotos pasiūlos. Po dviejų dienų aš vėl nuėjau ten, kad pamatytumėte, ar ten būtų, ir vėl susidūriau su nusivylimu. man nepatiko būdas, aš arba turiu paskambinti jiems patikrinti elementą, arba eiti į jų parduotuvę, kad patikrintumėte, ar jis yra. Tai man davė keletą idėjų: Ką daryti, jei būtų AI, kuris atliktų skambučius už mane ir atnaujintų mane, kai man reikia užsakymo, arba laukia tos ilgos eilės klientų skambučiams, ir susisiekti su manimi, kai esu pasiruošęs kalbėtis su kuo nors? Ar yra būdas gauti pranešimą, kai elementas yra prieinamas „Shake Shack“? Jei jo nėra, ar galiu sukurti debesų infrastruktūrą? Galima patikrinti, ar elementas yra prieinamas ir pridėti jį prie pirkinių krepšelio užsakymui internetu, o tai reiškia, kad yra keletas tinklo skambučių, per kuriuos galime nustatyti, ar "Dubai Chocolate Pistachio Shake" yra. Implementation Įgyvendinimas Norėdami gauti informaciją apie prieinamumą, mums reikia kelių duomenų taškų. Ar yra būdas gauti informaciją apie parduotuvę? Kaip atskirti, ar parduotuvėje yra sukimasis, ar ne? Norėdami gauti parduotuvės informaciją, kai atidarome inspektavimo elementą ir žiūrime į tinklo skambučius, kai pasirenkame Vašingtoną, matome keletą įdomių skambučių. Vašingtono valstija turi septynias vietas, ir mes turime žinoti, kuri iš jų turi sukrėtimą. Jei pažvelgtume į regiono informacijos atsaką, galėjome gauti visą valstybinę informaciją. curl 'https://ssma24.com/production-location/regions?isAlpha=true' \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere==' \ -H 'cache-control: no-cache' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' Pagal tai WA ID yra a3d65b58-ee3c-42af-adb9-9e39e09503c3, ir mes matome parduotuvės informaciją, jei perduodame regionId API. curl 'https://ssma24.com/production-location/locations?regionId=a3d65b58-ee3c-42af-adb9-9e39e09503c3&channel=WEB&includePrivate=false' \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere' \ -H 'cache-control: no-cache' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' Ši informacija vis dar nepakanka, kol mes žinome, kaip patekti į parduotuvės puslapį ir nustatyti jo prieinamumą. Ir po to, kai ištyriau garbanos skambučius, matau meniu parinktį. curl 'https://ssma24.com/v1.0/locations/82099/menus?includeOptionalCategories=utensils&platform=web' \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere==' \ -H 'cache-control: no-cache' \ -H 'channel: WEB' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' Jei yra trina, tai matome produkto skyriuje. Jei parduotuvė neturi jo, tada mes jo nematysime atsakyme. Taigi, viskas, ką turime padaryti, yra gauti visą parduotuvės informaciją ir patikrinti, kurios parduotuvės turi sukrėtimą. Jei pažvelgsite į parduotuvės užklausas, jo oloId yra susietas su užklausomis, susijusiomis su parduotuvė. Tai gali būti susieta su parduotuvės informacija iš ankstesnių užklausų, kuriomis galėjau gauti visus parduotuvės ID. Naudodamas tam tikrą pagrindinį apvalkalo scenarijų, galėjau sukurti šį curl scenarijų, kuris pasakys, kuri parduotuvė turės sukrėtimą. for store in 203514 236001 265657 82099 62274 96570 203515; do echo $store curl "https://ssma24.com/v1.0/locations/$store/menus?includeOptionalCategories=utensils&platform=web" \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere==' \ -H 'cache-control: no-cache' \ -H 'channel: WEB' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' | jq| grep '"name": "Dubai Chocolate Pistachio Shake",' done Kur kiekviena parduotuvė yra "storeId", ir aš naudoju "jq" biblioteką, kad formatuočiau atsakymą į JSON išvestį, ir padariau šį pavadinimą, parduotuvės, turinčios sukrėtimą, duos hitą. Pavyzdinis atsakymas Remiantis tuo, mes žinome, kad parduotuvės 82099, 62274, ir 96570 turi sukrėtimus, ir aš gavau parduotuvės adresą iš ankstesnių skambučių ir gavau sukrėtimus. :) Conclusion Išvada Šiame dokumente mes peržiūrėjome tinklo skambučius, kad nustatytume reikiamą informaciją, taip pat sugalvojome būdą, kaip gauti parduotuvės informaciją per jų tinklo skambučius.Tai sakė, mes taip pat galime tai automatizuoti per Selenium (kuris yra skaičiavimo sunkus), arba mes galime naudoti AI analizuoti svetainę ir sugalvoti būdą, kaip šią infrastruktūrą paruošti mums. Tai bus pažanga, kuri pašalins tam tikras su kokybe susijusias darbo vietas iš pramonės (mes dar ne ten, bet mes būsime toje pozicijoje labai greitai). Dauguma šiandien matytų metodų buvo rankiniai.Kitus mano straipsnius, aš parodysiu, kaip mes galime priimti šią paprastą idėją ir sukurti debesų infrastruktūrą aplink ją. Debesis pagrįstas be serverio skambutis, kad gautumėte informaciją iš interneto. Debesis pagrįsta paleidimo paslauga, kuri sukels be serverio skambutį. Saugojimo sistema, skirta saugoti šiuos duomenis talpyklos tikslais – kur galime saugoti atsakymus? Pranešimų sistema, skirta pranešti per mobiliąją programėlę arba įvairiais kitais būdais. Jei gausime pakankamai duomenų taškų, parodysiu, kaip sukurti ML modelį, naudojant retus duomenų taškus. Tai yra švietimo tikslais; aš ir mano partneris (SGG) paėmė šį realaus pasaulio pavyzdį, kad sukurtų debesies infrastruktūrą, o kodas ir kiti artefaktai nebus paskelbti, kad užtikrintų, kad "Shake Shack" svetainės nebūtų perkrautos.