Commit a76037bd authored by wang's avatar wang

wn fix

parent 077bfe23
......@@ -57,7 +57,7 @@
_print('joinres', res)
return res;
}
document.cookie = 'sRpK8nqm_sc=A9EBM6mMAQAABr7rR-6k_cD1NDefUGYZBlvraANwxoU0F86e5XoQveY1mz4UARf3iT0AAAAAAAAAAAAAAAAAAA|1|0|27ee2b2f98e6c25dfd8413111062fcf921881318'
// document.cookie = 'sRpK8nqm_sc=A9EBM6mMAQAABr7rR-6k_cD1NDefUGYZBlvraANwxoU0F86e5XoQveY1mz4UARf3iT0AAAAAAAAAAAAAAAAAAA|1|0|27ee2b2f98e6c25dfd8413111062fcf921881318'
// _getOwnPropertyNames = Object.getOwnPropertyNames;
// Object.getOwnPropertyNames = function (a) {
// let res = _getOwnPropertyNames(a);
......@@ -65,7 +65,7 @@
// return res;
//
// }
//
// var _hasOwnProperty = Object.hasOwnProperty;
// Object.hasOwnProperty = function () {
// let res = _hasOwnProperty.apply(this, arguments);
......
......@@ -33,6 +33,7 @@
"saxes": "^5.0.1",
"superpack": "^2.3.0",
"symbol-tree": "^3.2.4",
"sync-request": "^6.1.0",
"tough-cookie": "^4.0.0",
"w3c-hr-time": "^1.0.2",
"w3c-xmlserializer": "^2.0.0",
......@@ -84,6 +85,32 @@
"resolved": "https://registry.npmjs.org/@types/bezier-js/-/bezier-js-4.1.0.tgz",
"integrity": "sha512-ElU16s8E6Pr6magp8ihwH1O8pbUJASbMND/qgUc9RsLmP3lMLHiDMRXdjtaObwW5GPtOVYOsXDUIhTIluT+yaw=="
},
"node_modules/@types/concat-stream": {
"version": "1.6.1",
"resolved": "https://registry.npmmirror.com/@types/concat-stream/-/concat-stream-1.6.1.tgz",
"integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/form-data": {
"version": "0.0.33",
"resolved": "https://registry.npmmirror.com/@types/form-data/-/form-data-0.0.33.tgz",
"integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/node": {
"version": "10.17.60",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-10.17.60.tgz",
"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw=="
},
"node_modules/@types/qs": {
"version": "6.9.11",
"resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.11.tgz",
"integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ=="
},
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
......@@ -215,6 +242,11 @@
"resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/asap": {
"version": "2.0.6",
"resolved": "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz",
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
......@@ -340,6 +372,11 @@
"ieee754": "^1.1.13"
}
},
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
......@@ -384,6 +421,11 @@
"node": ">=6"
}
},
"node_modules/caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
},
"node_modules/chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
......@@ -416,6 +458,47 @@
"resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"engines": [
"node >= 0.8"
],
"dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
"node_modules/concat-stream/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/concat-stream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/concat-stream/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/console-control-strings/-/console-control-strings-1.1.0.tgz",
......@@ -453,6 +536,11 @@
"resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
},
"node_modules/cssom": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
......@@ -910,6 +998,14 @@
"has-symbols": "^1.0.3"
}
},
"node_modules/get-port": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/get-port/-/get-port-3.2.0.tgz",
"integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==",
"engines": {
"node": ">=4"
}
},
"node_modules/ghost-cursor": {
"version": "1.1.18",
"resolved": "https://registry.npmjs.org/ghost-cursor/-/ghost-cursor-1.1.18.tgz",
......@@ -997,6 +1093,20 @@
"node": ">=10"
}
},
"node_modules/http-basic": {
"version": "8.1.3",
"resolved": "https://registry.npmmirror.com/http-basic/-/http-basic-8.1.3.tgz",
"integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==",
"dependencies": {
"caseless": "^0.12.0",
"concat-stream": "^1.6.2",
"http-response-object": "^3.0.1",
"parse-cache-control": "^1.0.1"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
......@@ -1046,6 +1156,14 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/http-response-object": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/http-response-object/-/http-response-object-3.0.2.tgz",
"integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==",
"dependencies": {
"@types/node": "^10.0.3"
}
},
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
......@@ -1157,6 +1275,11 @@
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"node_modules/isolated-vm": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/isolated-vm/-/isolated-vm-4.6.0.tgz",
......@@ -1483,6 +1606,11 @@
"node": ">=12"
}
},
"node_modules/parse-cache-control": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
"integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg=="
},
"node_modules/parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
......@@ -1588,6 +1716,19 @@
"simple-concat": "^1.0.0"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"node_modules/promise": {
"version": "8.3.0",
"resolved": "https://registry.npmmirror.com/promise/-/promise-8.3.0.tgz",
"integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
"dependencies": {
"asap": "~2.0.6"
}
},
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
......@@ -1901,6 +2042,27 @@
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"node_modules/sync-request": {
"version": "6.1.0",
"resolved": "https://registry.npmmirror.com/sync-request/-/sync-request-6.1.0.tgz",
"integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==",
"dependencies": {
"http-response-object": "^3.0.1",
"sync-rpc": "^1.2.1",
"then-request": "^6.0.0"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/sync-rpc": {
"version": "1.3.6",
"resolved": "https://registry.npmmirror.com/sync-rpc/-/sync-rpc-1.3.6.tgz",
"integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==",
"dependencies": {
"get-port": "^3.1.0"
}
},
"node_modules/tar": {
"version": "6.2.0",
"resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.0.tgz",
......@@ -1948,6 +2110,45 @@
"node": ">=6"
}
},
"node_modules/then-request": {
"version": "6.0.2",
"resolved": "https://registry.npmmirror.com/then-request/-/then-request-6.0.2.tgz",
"integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==",
"dependencies": {
"@types/concat-stream": "^1.6.0",
"@types/form-data": "0.0.33",
"@types/node": "^8.0.0",
"@types/qs": "^6.2.31",
"caseless": "~0.12.0",
"concat-stream": "^1.6.0",
"form-data": "^2.2.0",
"http-basic": "^8.1.1",
"http-response-object": "^3.0.1",
"promise": "^8.0.0",
"qs": "^6.4.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/then-request/node_modules/@types/node": {
"version": "8.10.66",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-8.10.66.tgz",
"integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw=="
},
"node_modules/then-request/node_modules/form-data": {
"version": "2.5.1",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.5.1.tgz",
"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 0.12"
}
},
"node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
......@@ -2009,6 +2210,11 @@
"node": ">= 0.6"
}
},
"node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"node_modules/universalify": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
import time
import requests
import tls_client
session = tls_client.Session(client_identifier='chrome_117', random_tls_extension_order=True)
# session = requests.session()
session.proxies = {
'http': 'http://127.0.0.1:7890',
'https': 'http://127.0.0.1:7890',
}
headers = {}
import json
headers.update(
{
"Host": "www.southwest.com",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
headers = {
"authority": "www.southwest.com",
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
"cache-control": "no-cache",
"content-type": "application/json",
"ee30zvqlwf-a": "Mmh5XxrmeD2L-_T67qwrZvXvEesJDs5A-XwzOdOTh0sYw3FzPdcHDCT0xyiJ_h4bvvoUH36qeaV=jjUO6PmX2XYgcVaLa8LaY4VUha663OKaoVdToMaumhehDa9uU1Srv_ZkiGgPsvmS4BVJOzcS5PD0-RBeSZduvAGGuPNidx1yG=Csfg8D_AEoZoc8xUAeyiX_oXRbmC2xrvHni1u_ss_cek3en=iG9EP2iE8Ryb7FJ2-1IRWXp3OT-5HacIwKO7G2zq-mDdLlaCcxS8dD_k5KKwPYB9wSbW5D1PU-06iCx3AIG6fv0BkbDX1VlGUc881YzLL4fJykjER9yDofjMlJqKFCq5OZZ3d==Ex-w8KUL2f3LY0JVGAK3hOb1dS6Ip=pv3fTgwFRGJ7Sp_bkuKvndKAZfMssf4yqrEbDMLmaR=yCJPKhD=SYqibZU-T6u3DvgKl6H1fAnU6nW0vtL4Y5gAXmGMX7pW_Nj-twxC=i8Rrykj47rXk0oYHGmHmri4CUIp5427SvNyKkde3W50S48AWxj4Z-XWadb3CxEbo1H=XMtl-0I3It939FuofV_0GPR2hHTULj1I8Z12CtTbNuu_iwZwZS06XPl=6WRJAc0LHz9nOLd2LX3F-K4p3u3iNxpTZD-l7KyEsvP=EbmK2i3cw=l3qia=hgBdjI0t6S-uafI6AAbAdgG9e7CvzBsceIYSZq0l68pCG44=xlynA3BSsycTYrPKebjuLbe4a9kbFiMyhMirTcVB3BrEx_9J4I36fdRMJBUOP21pZ1D9binMxbjizWLY6C6ZAmoyR1ZxOzLG1ee2EqoahT2jqu7TZ84Z3-lb32pG2jYhNCFb8yhTzdFbiW2jVOYYqzTMGk7kTi9OPkyq3V6UaS6E122799__XWeg3EcaK7j04FxzfqsWz7tJc89MmrK7gDV53eVgUrmsK68fB3THEk2TOzHbNscKM_4W3=xcl7ONgIjSeHC5FYDqr-6LjI=1MwXKfr-WzaNgsVJn6dpIFaj6L2W3nvpDgxi4iBVq91HI1Zs5b9tr644aWicZXvtYVz4TlW53jFf6z7ErDoeHfBAtniea1HxvBAtPczD21NNIss5G4VhMD8LTW4J3fvU7ymWqCxEfj-bXybML_Tmd67StyVz8xOVA825SWiR2NhAu6_xXrI2xWaguYjn882uyz6LsfHMf--fi80b0MpnIKrVfX9SFCL2X6JlFy_af0ZMCRsPqWo5NSem4nkVwJTA13lyh1LeCSuqudx2BPk-BwjM5c012i2pbtn4UGx5oE2V67G0=CBg7hRJSqDtW3bWYtrGf91TOYZBAKC4VYxkXm3Mi6s4kWf1YGmz8qW_kDmRD--aTUtEjhn-W2Y9wtPkiGzSDKBhJFysAqtpwa8XeJKB5-YEp2wX5Nt86VwOLwnjzEY8NZHfcB-RnLKDSO1bvoRNk2g2OfzC_Z1-pgKPBGOrxp2lSDEuH18yYgcOs03v8qKW1kK4xc3zaq8gab0LrGD8lSX50S5WrSs6w-eAGaSNyVqJuSAB8b9C00IvJHKpysEFv-JGCRSKNqMPsW-r4RkbadKuX6hfE7P6qBWCtoF0gmRJF7Rv7MW=w6lJEj3p-Gw7ZwCf5_KXTnlkfxw-4Fu1qB0D4UengarJy5tlutDxRDUZSo9-kvc3--bmuEmtpikPPSEij3uTp68cMNy-c54neaOAgiWfcu6sofH-B77Ep6U5O6ebS8FunMDAH70Ok7r25TALAA8NyprPJ86BjA82hs=MnkZD2t4LUOj8MZpKzNZEbyxlIOnslExFbsXWD8Lw8PoGyDPkIdf4HlGrxRtKGvBpHotdUzMD9c73LkCI7xfpkGaHj2pnKuSqh3wz2hmUx6q9uzeCdtkYRqquSE4a=dvTN7lcXlYxiZftExlFa93lnTGb0y6-4hzv3A9gvY91JCdy2fKwjYlHE5wqjkYaH1hn6uHvB3HxgrU=IN4b2wIW5kEntLhZrtzy9vqd1fbL8cNAc1MxxgTKfqHGx=DDflIzMZXPeK0-2hOJ3aPzD2tzUrLkzFP6GykJadmNOc4NJoFGITYszPrgGPL8WYzoth1qgTZnGYbsw0r8g2sXIxk83xFHK47yP101O1YMEH3zbbDp1HdiZ1pZqrKAa8jcEv=tElhxn5asWuUWboiu3oIOItA1O74t=LC8SM1lNV8-J2KdaWAZOJFUayabYZKyeLPdBCPHV91Vv69KlufuwelyBELD07gDH7Rdar19Z9IquANgI4TkeOoeAMxLBESXB1S4BoUY9Wd6XvhNt05mVjdOafiLDjvDMEcSvMqZpKSdZ3JKdNFiKkH6zP21=0AR_in3vR1Un-JupRt1h9qaHP3C6jzE21qin5KJPMtfS4ZbEmV8llLRTM1LWWEayxesIfz3TVFg5jCqXcttzR-TeZvsG6_2nGS_aT1IpRvHFSK5wLumsAxeVmrGTJiyxZosAX7ZGVTm8Aru9i1g7GwlYY2ldcXmJFViq6DrMi3FtUnqvh9dcFSHZZnXJ7aWtyqfqpDoH=MBsozrE_luc9O1vzSIbT1idF32Oy9v_maE7V8151Ly=hBGLafovCvvNu4V969Mmf7rIaEOX2n2-MKPaorPPF1o0uHTVTZ654j5HWbWpOiC2IcOWlmCyVLJjtu51W2eqO6rdya3F_bEG=FA-TLHXhAhTZ-4=lfkqbUINTgfzOueAloPbns6edhCryC5C8Jc1C7OmqX3abwJIL_PoDoUn4KzUZ=zIwNOMpPYHTNoFdvZ24s8cjGBratDtV-BpC9ICL0g6-ArAPcDdEK-BgVceH06uVXN3a3cxEZ8q_st-2sixWxfUj9zUO6F6znPVw3ETz2Eno6ps2dFT3drjWXujb2xE4J0A7hqOcO3rcDidLLN0i7reC8kwa8DRdq4=vnrsHeNk=A4CSzI-ELDTzNZnayDs6tN9cdAnd==kznNrZhFpRusZcyNz36eSJ_wCVfj10gPjTkv_DeeP3nXC5WC2XyJtw2k1VM_IcNRZ8te11PnxzJ6xveuMugRcsrHWow3yGvEDebRBMSXWBdE=n-EhKatqE0jrgF8KLohV8BXlP8P4Cmexfu5V1=tVW9eZaFaBM==ONGNMBD1ldgv31h20rB0KORHDXpoAO_P1zEOkorUJsDHScZZ643XijI6DZUW1RbqVbANrhl7iRqIh6mB7jwcdzmZr4hKlwwLsrqtoHdlzkFT4fCnza60gFtuLRsyR0omAt24Xn-3bhBUFLIP2t59UuPoJ=ob=qx2JGOO24ZfxNionOaLO6c9GxX7Zqa8RmgXyHpENt6qCPA6WHyvt_iZsSLWZJN4r9n==4dLqLuS_7sxt=DZ41_Vi39DuqTCr7wCZmTi9jJHNL8VbVkVW=gVE16TBk-hFwbv89fRA2ti3fdrx-e3M4ZGFovfKUaa0bqGx5R=qp4xowFYqMaWFMjgY_k2obxR_7Jl5GbTDfpLJWw-YxPgW0clIqB8zSldt5qFiJv15nAZ_G7KvKHAjJvDIsXFpHZ8sxMIY_f-_ylEi_5=TaucoKimMp1UW3A4tUdTFXPa9Z-ERusKUwGVzXCltwuCyKV7JH-rEC52fuPqubr9=2dywchA8xSLcJOaVRlHR44y_Lwx5cWpVdNaKfMmtqOw-aqlcAT2JHFpRK=DIKeiseYMI=-o2I1rTOmzm0Akuwq8ZK7GlM5X2RP15_Mr1qI4lNLdoZp5AjZfZVNRdqb0vx5oLdo7H-6tkun2=C4s2x31lsLYxc5HstJxY84L4GNEUbccvwMLV=ioES=6Rw8FR40gqFdh0xj571TmeMhuo5ruIk7HzSdxDb6R9qr-zWbIgGUrcV_yqTFyMqsZNIH1hft_-89VHDJTrhT4IuT-cTwLPBkBI7PTr5LlS4wIN-8ihgO3CPULtn4vtqoD2vFi4pL8IbktV8OtI0VcEYYkutLTDxiV2xp_cfeLnTJFDEbDTpzjKd8aX32zw3TA54I=Wcip_pTDtpmpbgn98V-eivVbnNjbLtATmmTjPOjL2Wi6aw0FKRt6US4hrqAdV5gfNPIiTfGw_3lTEvjlamdIiSeF3p9dBgZs6pqnCsozE4Zj0PvznaSPPCtucAk194zj9aGHAZUEy_lWSuN56q419ZKuoV3__rPfY4pfD7ggwAuSU8b0Yv1wYZ6p9xVyza0EjNLblGzyDZYHmg8N3jbjNRUIKokobFzFsD_k-dfK-yMKnTdYyUpV7h6z32wX=ZBK-=FXvtqxkZSblaXFUY7bdAkNVKOZEj87qa5_Hz0gX93K4fM5NFpi4srm3c-R5pWrGP=YZ6CmFkVJ=iZKt5D7q9yha1qhDufPUR7tMF5EAI6UhEZJqpOEVM=t9gq5=P0xw08O=ixbygdwdjsb-i_P2qj-iCbyKC890xAslb1REEk8SpLvhu2VSob-J35tWkgi_XID0osfcPwd3abj0-gsdaAj_HStOTVsxY-9Ju3X7ocYEcLrZHwEqUDY1uL-Fxt9P5hf1TP7VmTa8vcJwd8UU3AksNjP2xmTDxc2YtJsEx05InAUIBsqDPi=xESK2hCD-NxGk5naIdXDjAmebw6IP=XYafaTJPV8-PnvFengjqJ0bjKmEao9ejdbOiVFAJUsTH6SlT36ImeUXv_uft7hgEVTqFx3KsANxbeEwqJxGLk8LLxBEfLqG-d7=CpIfd=Ecd_LilZEeqpESAWv=dtK0-isIxyZhvx5dLhjAV98UUN_YL2drOhxX-Z69fOeAyi-sgy0atumC-TnwK73r9a8r1D4rV8v=TI1Oj433Pw9-eN-AH_qp479NmtpwOqI75xjfVrJsWhosh2Y-akenhYoEsuVbWEZH4zrRoBZHGoEUfDn1H4hWwScHTU-OwRZCLu_hX9U70aW97YWHoNFO3VztuYVacW=4BGgWGJWwE5H5zMyoN5ONmhHLmJIUPd=IHaZd=R56C3yu=5X2JucgFFgleYMwTSIJ1r2LPdfyspF6KjPME6U-972_MWg=7aeRlw1HrP_juBmnpvUt6CA2nK-eb-txPa871wc9_aoPBWZBXFgWxcA=FcL=no2ZOrMVZVOmrtGRaEPsSRAqsL3AH5zJntXY90bC5Z_uu-nFW7gj_Zk5xayc6JwWkhAdYgTkRJHb_EMdH7M4to1stYCidcztO2Y8-H=aOrmnpu2CeAtPe6AkI2-foIVoeeh0XcaSToE5gwq9vhWD3YaKcSXx0F9yNtc8Ynp9PmV4DrmE-pMq_jsxDU0fCZiOnMN-6dnahGZhxDEoYciU1g77-Sq_SpPX8U010KS0xJGsgw3CFoDXMk7=DKKSp=O10xJVf1svdhmLn8m-lsXu4gHjZ_ovqs3GRcA-tJqdVjFwg36g0nt=jNqD2vVsm8qb5J2SYsJ3cbgp-fwFnZqnyS_FWZ11qKxMkf6gqMmfTWcMwqNlsA6dYogbdik_Z4J0AS=sJNxJkt1Mva78-eJT-Po7veMTTnvhe2YJioo7vSIpmg9dvsrgIvq86OyiR9eEV0a8AM7TivRJV7r_lgCykFT1g4KVoyRNGakf0PyqvV0IIU2vXa3_Dabdx6q553iI9460on2y=mSN-w1EgWP5oXA_mEa7LM2pdaVPHxn5DV8vFETBmTHGEl-ufUiOSFggY0EKwJ39ZPFk1cmftDSPJbenltB3aB0ebFEYcL=d5q8mvmIbCRyy5iPLx5ruGpJCnuc7fBonbJyDgjHovSCEUsWi8VRGGq1kxLZoNIdzniakrsbuFIR2NpVchjn8YOTIfA4=04G3g=Xv54iAGdJTNj=-MWsZNmdvpGp-Yll-wC3pp-UM2KGRK5zpIZ030kfIuROiiNn9NdnNM9avnPK-P_ULcc_ChzIyrpAeSLwqb_Sozz4f6XbVwkg9g_gGirYCLA6pRP19SWpg2xO3A5FrovNUIdTrCt98lBUzdRKtjMua3lbP6dVpoSr=z0h39UnD7ggLnwKcZdY91IXW2z66owAxDCY6aOO9l-eB=TdE24g_pZ2kARJ3JdNwJxxFjCnf-ShrMZ3eUwBRx4TZppaJg-q-NAcMYDfp7IHjw79rUPE0NS07AgDMVKHAGPoUhJ55A-_XNbyrb-6GPY8wtSDx-kLHmiD=ZUkUMeVzLE0uLAyMUyrpIakPwzpXWBMgR8cLzOizDRx2-X-OCylWZgKgpw4zK=ztAzA58HFkWYSOo3sSqTibpFZxE74gcfDO62FeWi_9=p--Nwvju1pydkYWLlvoXHTjwAyuYDmzC6J765jqDSaOs_3k3FF8l8GMjG1yt9q1TJ4C4viqE=-K",
"ee30zvqlwf-b": "yi1vp6",
"ee30zvqlwf-c": "AEBIGQyNAQAA-03qTNrrH58aJTjdyfDlbS7O4LnFTnpk4HCX9ylLnZNWqVbc",
"ee30zvqlwf-d": "ABaAhIDBCKGFgQGAAYIQgISigaIAwBGAzvpizi_33wcpS52TVqlW3AAAAABnMdsJAODUhxJduYd2E4PLoK4vSSc",
"ee30zvqlwf-f": "A5jvGwyNAQAAjZMs87esWvcp9JpWOeYCdda1LvUSx0TvqevCdcpBnONooPRvAReeaPgAAAAAAAAAAAAAAAAAAA==",
"ee30zvqlwf-z": "q",
"ee30zvqlwf-b": "tzardm",
"ee30zvqlwf-d": "ABaAhIDBCKGFgQGAAYIQgISigaIAwBGAzvpizi_33we03bIS-vsArwAAAABnMdsJACCQqH6YazmpHpYj1Y2NFAc",
"ee30zvqlwf-c": "AIByLfeMAQAA7I3IlfOwU7GXSjhzY3B8jeXaM5XkVF6FY12gf7TdshL6-wCv",
"ee30zvqlwf-f": "AxDNLfeMAQAA7Tpdi3nUutolqBoO8q6ERTcfmfBeBC6_106i6IHmiGBORW1XAS4D8m6ucuKDwH9eCOfvosJeCA==",
"sec-ch-ua-platform": "\"macOS\"",
"x-channel-id": "southwest",
"x-app-id": "air-booking",
"ee30zvqlwf-a": "yqTzgGE8ZcnHIXXXcUQfyVYkTTAuAwqwABK9cXaW1WTH_FrZpwte4_JFQmySBHeQftQV_rm2XxC0XS9FeMgjyE0V=mHjtKr3OJ0gZqu2d4AAffP_TwGNa5-0Xds2MrwjhHbZ1J0LG0U3D0tcVp-xGwVfzAWGTAQJHLHRxOWLh=yOsk-_LsjxC=Uiok18iMjBc-erso5LpPz8xPz-0z37eXJNnoNrx82l5dC9v9_o=MDQ=tfGOmT8K_kOaQ7b8Em3byL=HogTNBBMq3AY-KPGeZSykNPyUpJxkQ0qCl5PHQd1eWyx1fqTwvFDb32p41LLK0nXyK_wfex9VpGKA5Jx2MbxLUrlLHOvBb8xp=CoQaHAHpUShIJIQqlJwmciniDqHMnZJ5lP21tCnjlMQZvuGoC3u1ykPP-ZxFjsarh4_Ghp8fsFi3ZoXm=ThwIkwdOWyA3Ylc3fyx5rRhAoqS-GZnDcJ9qmqKHkwP3H0ZcycuBQyvGaBCKnlIsD2yJg4I=jgnCNSdPSjvgCLgb1PshUxmOQjD-8cUvVGwaAVf30gr2nouNL1VAXtPIsWfcVocp3vBOhkyyapTSFZKfaFIxwL4_0wvcVNrOb9tsi7vdXHHeSUuvl_3j32v2F=TRoeejbIRMk=QXYHe5ojhgscZ7lPKYLczZ_nUM0ygq8uju8gNpz33OImSgSxhqEjKgw8mFcDW=JVO9WHa9m-ad2sITqufAaMeMGo327eZomNmo0iotRI7qwBTTiWerpS=iSiBj_2LW4=iTksQtdwx1z74GLc70IFb3r9g7nWsS8dt3czeOyciy0HexKCmUt0IvJiCcM7wFKaes1y5K3q0GhRp3amiJFBEImTz1IA9C=KmbfUOXhn17gpe1tidw7JSYf4NTgs-HAOD-a=Lm=BEy5Eb_ulGq--hvTJn_ley7FCzVT=joqvzG8UfBEdnAqCQT0ldRJYzD24sFYnrfzpuXR0B0EIPslIO-7eMv042=qyplqlh1CEspC87FnL4MM9c1CGSlGhi5X2A-GPi2VuMnWuBQcEi9gq=5ezUjHW8isvz8xEKW4YgfumdzFe3gL5ltQVm44K_A551pRVxnSTvVF5WJXEc3Gr3uaiVWcvWs_l1Dh7N=QkxPCag8=jGOEKsg0Z3laoFUnXlUG3YRMj3DVFC_HsnQ8ucWBgVxeHRVUfI8gno1=L8DwmKLpgE3hfD5S9NfckQFwjTS2vqyPjEmqLd9rBxde3c8SCsk440mHaoa5zKXtOM5HH94UpVsc7fwcEHHBwrWIgO2XaLo7RucBumjSw8pZI2lpIeCn_CdV4J8fVCMb5AVF_Fn7UHm_CQyfxexkG0wtw3WeIhaWV-dUi4tPp8_DcpwWI9lf7PWVQeP9Msyb47pLP38T3Py9YgeZg_OuBbIQXmYmSXrDSwYZUaZxCsJK4WDLWhYyQOBAskDj9-YPogIX5_TlYbzzNhp3rte02S48=DdjYuj2GYC_CxEplc_Dn1igugeEgTY9EkigdeVHDqUJaiLH9XtkbBXCDosVyZTbx=1uR0QmeIvdpxYjHteK18-oqBH0T9W2I7jyzQaw3OBiOtvyyndClLV-tyJUE3CeOZV1iIeoQYJzsKLIl1byxVUQfWl9hbT05H3ZGK5jKIcrq9FX=HTf-CN_Exi3CQ=bfy4lNQCRsHjkwKjj9vDBQ52UCbMOgBebDB1g5x4BOnDdM7DFR5jUDVizDGYLraO-Y1=C_zzPWWU-1hSH87KLLDlPiErySysl_aTeFYJ1MfuWmlTRukiXTm2EOkO0wTg4nnzKj2wRp=iQ4Lc9T8iYw17GZhDOsM3bwoJpHMPWKpdQeIfKAnm_c3rMa-Ldc83Tl_gZxyubiKuoZesli-3qw30Kd9le5kgJk=-taqI79EnB3aOTVYUZ0DOktcTfgujh_e_5c8TdDBTs5TAkcOodZJEnk3UJIyLu5ro=v_dRuUWKQSimCTW0sI483YAytK-F8_pRhG0mC0HH42Rp_YS7rIyeDrxzN-ubch9P0SalodzBuuO2kgvmwjKKWGvJptWT59iWl5SoIHaJhz2H38h8VV3ROXfeI_sEcTb2fXdSw4_mdtCVXvW=31rhlkIPkDWZ7Zr8spNbpbGFxb9oPT7nDR4nZzIKne_S1PESme8SZlA0DaLM2X2TpTTXB8GemOEuiced8LsifK7iAZW3wih32SJRpRCntWcywP45MpyJM2XuyldN-89mUV2tQbXgusnQPi53iUhwQzRpoVzIGseNGc0SrtQUmsAa9Lab0OkMkAdYYk_-jc8JVszOVBFrnLBgF-MsTGucWjTc5XVIQBxDVr33PxePwjVeSh9Seu=8l849-FxnxCo_=weuskEalQ3EQnKr=10rBh8-m1A5paRdvf82=2sHnmj8WNwzIFkMMDlWy_tJl3uTpDZYLtz2SvTRp0L4ocjV37Fmk8SfRzRemSoLARcu_VOv5L=l4fq2WH-0kXh3fYALengBMC1HwkA-XObt=7dToJ25krmY4ihd7fq_kF2l-e4hFOV=Igh4q=WEiIlVV8YVSBVVZZLJi_HWMHgwLITEq0jiUQxOZRXOTnNpd7ZRt7iXbkiWeG8lXHyVxSMHfr52mZP8rPtLu-u3pVB=4nIytY3h_90oqs7yhuqvJcTfxKVNZVmnRh_mmH1EUWfJf2UxfrA1UbQO0ITL3rY-02j4CKpBsPJx0a5YyriUrenqY4tYy3H8Y2zKsC3Ujpx_awOLxtGuGGZUgdv23d78e0LifljYW4QuWGxY4rTkq=Vbg5-_tkUpKqWWjZqx55Wix57ST=soQhYlM1qL9QNGY5g1eEvk5WcGTdx5zMPBaudQZzZ=i4V7v1AsQ8W9dd_b7n0h=Zj=APzTGo2d7QhVAJT8Mr-xsI8ZvoOTW0VZzrzy-KEyytV5j=pvOGszF-r03qY78qGd=JTq51-Y-iUS2gfiVI2h8MgsTSo3-g0uV0pN7j_NtVFav0I_SSnSNNpDN_wZ5-iBjV=lLV2W_ygW9Zr8jj08CDgPvqEeOhkFWvU-5z-EP0P-pNxRnvBprILBSMwlhaHd8xc7rpdXJ2wT=FbYg5hv1AJKy2mqn8TsfD1aLoVmmnNjA-=1nO-qTPVMW=WGyx0GNPEC7cycyhLqhof7kewtlQKBAnH8VYIa1ffGkTKRA2waigDrdLrA0IpDOZmpcaK0ksOwzgRiEgLtdtXihHWjywX9AvoKuFTZ8D_BsNx3KJVkyANHqdx_jW7Rmc_wc=lAcKj144ujw2LS3cwl=VlTGyHPh9GfEMH_Pg1fuEAhHBpUiSekg_P0FcaP1uNsSITl73F_xJ3=iw907Kt2YuWW-lympKEHEDDgUcLc4YIYovbGYDQ0W8Zxnt3fL5bxgaxyTydchWg53HjtgdjlH80pYJVi5NdC-HcItaonjHEzlO3Q0ka78wvao4iV4c-scgqmvyagW9Q8SVDZqVP2ByIO2cU5HSBY5q1KxQfTFyt5X9C1hqiDQx2laz_7EVGAOW5NcC3Eeu1m0M00mKiqdU48YK5vlxmucR1s-WyiOmlI3LUaNoaFUwynLCFFAMKTpLZ_92QKLcdi1eDc7z4Y=iF4zXP-1cKzKNpqGIJ7TyLZk8bjrqUjke1K8YBaihGUjvciWM_pL3VNADaT5QSqpKwu4sNFreM9pWhI7OOIpaLUV0H8kT9WWoyk-u=9GxWlkemcYMldP8W0sfiHDkCLpn-BavHTIZQ8dz8748cvnd4fcOFya=Laz5hHxA=Ml2qQH_NSkyuZhFLrFpdfec8=KidPYIL8vdtORDa7vO=sACYmlelvurTbmzBJAjrZ8sTd7yZjnnlVaF-ev8E2YYvh-JODyucEv0cwdwKd0To4vB-kuBw8vmivy3kRKYTmrDzk=fl3KWnLZQ_7E5_1EWrNjtTbAUAy2EwMpGlyue3bt5JH0AsuliYLaR52W3gq52GdPbKonnHiJzM19G4TpqpmdQ3P9YcUakdDMjvBj7yRyuInWbrJnEhRtoJUjqPttv4Unw0WRmZu-TgB5-RIKuQi5iv==mp17K9Vn2gPhm_cVhLydyJx-_kju7cAgTkYHZ5YQljgVX=e=1htZkj2xXGNQd-SRvoLKkebnduXjpez2B=SWQGOLjAq5xfDBExo55H_q-ys7uDBbsuvMwdr4ARV3FV=RR0UzS3k7Qa7=lLFKMb2ZnBbHsZ=z1f0Evme7VOgHeDnE0vGznqJ9907EEX=0qPKE=VU1ggGtnDsmcx1CidSLRZl=bXkuufLcqADFy3INtsJ=N1X4XONC1Y1eSotATx-tWZLqLG1HorrUle3wsXnSdnwU5CkmOIagH48Im1BCrOIGdN02k1dkLlRdPcNqlmIDufjKOSfZA0gaA=i3AqKmC51Oe3qdWj3wyZrQY7EtmLoG48WpFdsl1VsL48B38_uaSMttZ7_xZQIOfq-XtxyBKgdpo50ZZNB2Ay5oH40LD9NS0asCFecyt5nDzJ149LDXYbNIFffBBQ8e5DnB2lQPP8zrNrjm8Fyy5Owp95lIg1SeQW3v15sM9K8RjX44kkag_DEsfyFQNeURT_YXsKwIEk2TKHYR7NuT0W-tcqOJTpXI-JlaX1Zvj8wv-HvAcWvnt80nNMtU93cuFo5N-0-aIRZkeHS=mXfvC2Kvg3WxJ9A9PKmTDveuT2v-nyRf9s7NdeVLRiU1LEnXtJUCBPdE8IQHoRkvwGeb9RUWu=nW2N0CMe9U8Y8B-OB51B0XsnKSiBXLYc2HnxfmVJ0cL5wyV40C3eYevap9VuqwhYhU98xT=y7NMhfgucZAUa7kosk2l8wkjS4vFatNdwu3TOqfmKrenY9xvPpBx7_N1Q-YJFqG5XNnRYpjYpdv4=2G0LcPIu80MWvg3y79GmGajJTvLz0z4ZeiSmNvbwtB8U9u7ft8EzWUP9kAJuywlZCV1zrb8Hb7RLCabH2H-f7_17kEnYgRWfLI71pfogMNOgH_gXzVP_qSJW0Zk2rxW4XeVWxm-71mWaycV-GZc5iAJyldk1n9Mh3Me9Rk=Ksdr0bfuqVCyvf4Dj3Q3NYak5PekiUD=2g=XFGA8wuTXjLBJI5bIczlw5IMST9Q_HK3CZIs_vaW4UM2aLNfhImG9fOS-SyUSzb5Vm7n93CdC9ZfMYGIQjp8wzdsOm779mQiA1CN=4W_iJ=RA4yv4mHHO50pGp12w7nkHCa_emfknnoz2GQl0TnQt7FQl3zv9UXuQxLgFRyniZ481ft_pQ=iak_bHyV94_z2xJ8Jv-Ao15dXLxPSa4m5O7m8rf_pWvAnllwJbtr4y15=K3F-qEXfQ0nT1WujqyugAkhTiYBtbW7prxIUDyd973gT-dUKm=c8SC1YsD31Gu7iinH7_zUlyE50S-_IQSSC28uhyHlZTggcwX2iHgMGG9GZy7WF_FPxInzMN00HEj3GgycRm0n1PRVasoxNXTT74pG2s=kV4yPiyE4jC8TWi-p3wq8EU3cX5zqTsFVxXLEechCmwpwGsZzIEIl10L=z4Ku7LyywIBDDn58ZQ0kCuQ0TAlccnjPBhLHKQBSyNhqJwah1Rdz7KgCmuxr8sjDqTKBSuNDz5eHtNx==lsCSUPoyAJEPE3kXNp3O_O__o7KwVVoJ1XKYBgYWfOnCA=mM-ZJumG_4fzvFYKtCDHMRCvPiUzHnEjgWbSCdEzBBCoKMOpTG3goLh9WQy=YV9D-cvSSOonXX=2FbGdxAjvuvMhrpxZVOgGI13XaX-DvPkZBETwIWc0OpNH9p1aCCNt2htchSN7nx0QpvMSv8yp9F7Y_fIVAp5Gf13ozQ_S7p7=tjzu-9ALgCYu7AsXOD99v=0MruXyr_pZeww5jXaRumnNuKT4QhPCs0f0AVrx7seIBKCW2gdrAj7on_uZfx-2m=dVYZtUT7xvHhuTBdbinDW2-H=hioApVwOpSXWbcKBD45vo4kAgk=Ck4lBP_V4Bp_akuJjltFPAZT1e=YMye3s=wwCSHaXE3tLSjoNtMsnFNKZrWk42Fi4Ddrn9Hld_lbQz0Kmw3OVL_KW8PBBxh8GdUyv4Xj3R777mwyDn=VzmTjPCsJsHJ-YlleZxHTJLZu=QEVjKTyjxensf9iMdomhrM2qUGjpQtFvIuu1OPt_ar7kc9x78O92sLOF0V8xYGMpP2QzAePRnziA2HjJEqzsjbHzFygQpOlJuXQkjbomHyrHSeA=T1lo5EJb=DiCgbLlg1U8HNy_pUVU2wo-uWH3fTmxWtg2_GFXtg7QzLp91VYQAij2h3qLSJrsocAXofgDQkbvLEdRde0R9biYofZZY93wW9JEpSe54urSeBioSMmC1cNv_fuKeKDhpkHYzwXlJJ2XY9kCbQC0hvrANLPKVJOi9DtsGTL8JhyK8YPFV9HEZiqe5aWkRdWlUWGRXwPJWxLiuarTWXkTVw5oVMLsgJ=DfY3PDt3pqPdmZZOWdP8D2_qbkXg7CJ_l8IW2k=cPpiXwFqJ9xYnvXZGbOXO4LuoAonB9aWvqlJR8thAv3l_0F_Rb0eOfDXbDvOjbocZfFfwVV2=FcOa8Of0o8ibeFviRSI=PTP4y9GWYuWFAAxbZkm_4F8EtlZtNrSyvOGsIXzm7nUqolEnQDVsTLmuXGjxy_l9Az_ohQGHF7GAt7pR8P=ZnM1RZHyoQxgEji9KM2yUCx=nX8aot=PUxu2yFRyKfdZB_QfJfO9jGNzFfds1qRtRNnb5hWgUXN=vrajkFwmMgRpV4XG9wtPhpd=ssUAxf5soaLgARgNsii0LCGoT_02YxY890s8uuOgohjjUeJWayA8K4YKiC8yftPjRMwZweJYwRPMs5Tf5lxVgr8lHn4ZW5dkTOGpNglZrlzNJ30Qg8Q3riNYTefJpNCvGp4oBbvfyzmEEPoxgQDC-9Vk3JW_zfiDRvIQDi=ZYDtG_GhegdwblA7JqZmY1rEpa8kJEj4JHioNumvLmZdXFnivbJEKRcDe7OeB9qHhBq_CqpgDAnSpKPAy-CUug4udDp8ivKYxl=KaA5UXfI4IaVi7icK90f_lQxHsAfOBz9MW0Zk7uorvvuUJpO0-CDOvOijSYLwb1v_IfTChVn7nLjqomX-bJ8vtjK9QsPMbP2dwr1rP4AGvrX8SYujxs1ajwdaX-Wnv4IuARVImdLT3xrVCYdQbR0C9YU4vWIQWKMaY7YVA7JtONAJA_XyQfAZYpBrJBsaLJ00m0SZkDiN9_a4ZqJGRcYOexOtMboiit-_42EOzM1=yRVeCJuBrpucLU82=xm-tSM4-xW3FmqQHrYRGeZrrs2QNMOTV8WExZfcF3FMPDlZa_W=DTp=XSXdwl3jonSZWDtrScFNTfqbzN58Fba0cHNg8uaBAnjyg7bF5sLzlnQmvnlBwiu2b",
"x-swa-di-pid": "6220143449988117",
"origin": "https://www.southwest.com",
"pragma": "no-cache",
"referer": "https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true",
"sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"content-type": "application/json",
"accept": "application/json, text/javascript, */*; q=0.01",
"x-api-key": "l7xx944d175ea25f4b9c903a583ea82a1c4c",
"origin": "https://www.southwest.com",
"sec-fetch-site": "same-origin",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"accept-language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6"
"x-app-id": "air-booking",
"x-channel-id": "southwest",
"x-swa-di-pid": "6220143449988117"
}
)
# print(headers)
url = "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping"
data = {
"originationAirportCode": "LAS",
"destinationAirportCode": "BOS",
"departureDate": "2024-07-13",
"departureTimeOfDay": "ALL_DAY",
"returnTimeOfDay": "ALL_DAY",
"adultPassengersCount": "1",
"tripType": "oneway",
"fareType": "POINTS",
"passengerType": "ADULT",
"adultsCount": "1",
"departureDate": "2023-12-22",
"departureTimeOfDay": "ALL_DAY",
"destinationAirportCode": "LAX",
"fareType": "USD",
"from": "",
"int": "HOMEQBOMAIR",
"originationAirportCode": "LAS",
"passengerType": "ADULT",
"promoCode": "",
"reset": "true",
"returnDate": "2023-08-24",
"returnTimeOfDay": "ALL_DAY",
"to": "",
"tripType": "roundtrip",
"lapInfantPassengersCount": "0",
"returnDate": "",
"application": "air-booking",
"site": "southwest"
}
print(len(headers['ee30zvqlwf-a']))
data = json.dumps(data, separators=(',', ':'))
# response = requests.post(url, headers=headers, data=data)
while True:
print(session.post(url,json=data, headers=headers).text)
time.sleep(1)
\ No newline at end of file
print(response.text)
print(response)
\ No newline at end of file
......@@ -16,14 +16,14 @@ headers = {
"content-type": "application/json",
"origin": "https://www.southwest.com",
"pragma": "no-cache",
"referer": "https://www.southwest.com/air/booking/select.html?int=HOMEQBOMAIR&adultPassengersCount=1&departureDate=2023-09-21&destinationAirportCode=LAX&fareType=USD&originationAirportCode=LAS&passengerType=ADULT&promoCode=&returnDate=2023-09-24&tripType=roundtrip&from=&to=&adultsCount=1&departureTimeOfDay=ALL_DAY&reset=true&returnTimeOfDay=ALL_DAY",
# "referer": "https://www.southwest.com/air/booking/select.html?int=HOMEQBOMAIR&adultPassengersCount=1&departureDate=2023-09-21&destinationAirportCode=LAX&fareType=USD&originationAirportCode=LAS&passengerType=ADULT&promoCode=&returnDate=2023-09-24&tripType=roundtrip&from=&to=&adultsCount=1&departureTimeOfDay=ALL_DAY&reset=true&returnTimeOfDay=ALL_DAY",
"sec-ch-ua": "\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"macOS\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
# "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"x-api-key": "l7xx944d175ea25f4b9c903a583ea82a1c4c",
"x-app-id": "air-booking",
"x-channel-id": "southwest",
......@@ -32,14 +32,19 @@ headers = {
# https://www.southwest.com/assets/app/scripts/swa-common.js
headers.update(
{"ee30zvqlwf-f": "A9_iUqaMAQAA3UvfNcN_QaJNDITZYK5dMpKIViZpuciKFdAxVYGhXaqYrinZAbz9BxYAAAAAAAAAAAAAAAAAAA==",
"ee30zvqlwf-b": "-v5h0u7", "ee30zvqlwf-c": "AMBfUaaMAQAAQ5hkHdV-QxgO_vyM8QD_CWOjhxvnTx8V6SgaM95GtcJiEOpq",
"ee30zvqlwf-d": "ABaAhIDBCKGFgQGAAYIQgISigaIAwBGAzvpizi_33wfeRrXCYhDqagAAAABnMdsJADG_iRTphaEROa8Pam29y5U",
{"ee30zvqlwf-f": "A-PmPAyNAQAAgUl7aSssZyOhuHpR_d7rd9GxrX-68KVxyU89RcBd5CKJI5VxAReeaPYAAAAAAAAAAAAAAAAAAA==",
"ee30zvqlwf-b": "-ftbn51", "ee30zvqlwf-c": "AGBTOQyNAQAAcripUBN88hK-tkd1qU0zmjHIgdWBoj8dn0Audwho8SiGSZUW",
"ee30zvqlwf-d": "ABaAhIDBCKGFgQGAAYIQgISigaIAwBGAzvpizi_33wcIaPEohkmVFgAAAABnMdsJAGCngjBu_aIVaKsY2LImYig",
"ee30zvqlwf-z": "q",
"ee30zvqlwf-a": "xBpnD3xz=37aFaReNtp-tsa2xJ8hJxMlP7S8MgjdoaUHcMBSh18CyZKqdVp8kCea0P4KNcFgIsUdfLb9SVT-pcKAlFx8Utnu4VUwmBPW_LzX1quc9j5Yco09NQ7c=N3a8guJzv9d9N34aw4ISFwsxQywV0K3vpEC4kYoHkpOvyJ7x3_TySvvEYGTHlYxq56nNIEPQjeJ2dRTPMMAgNp_OlVhmdWtHpNIjek1eF5-u86upKuBzWd138AKoE_VesZjxEhgbAY76VTIxJWk6x7tnQMQJQCfa43hW8q9jf1s0Vee75ZDuxRG2JmrKK9jRX6m1TK_FaKY6CxaMdmjIjlbrJuy_rYnKLvoD=GLyKhsyx0YhFL8zmu_CSDE=z6VxTUCsUwAzm8BXlUbF2P6RagKrZLsthWjtCXBLDx1O6=XmVnheDChhIVdaTldlsa3KkuIzNRqImf3DucR71dJuVZlV7ZTYkB-hT0aL==148B7Jo73EnWIaNzIy9IQcCSBWa-Mucy15ymGZUh3mXmPUIGKbI-9mSMhK9=t14_F2BLtV9SlBokY0fpO_EVc6GeGa=FzB1gralplC=J8K4TvAcF9NgdFLIHoZly2NTNum6VcndyJwG2jv7u1rHFslAsHf0rUWHsR08FjTUeVYdr8_LtNuRyc0G_7_jT7y4d=k8frcaxxrcUkUCYWmZKL6_PM9CYcDRI2KgY02A9Hhdk=PAYfOl3BDVcMbbRHAlaFsRFTltSAJXLOvSl0-KkcHLPnkArBIMSrd05DKaU5N=G7nvr-S73mH2SHxZDB9Kr2=_DJuAz4qk2sCX2E4G_v7h-gvhgBLpejhpJm88JzI=ZDcBvjQ8zLAJ5FISAm3JQUQHdcMthQN=7PbfxEYeONwlcTz5FzdT6AcsbBzRNlXRxHcn80EvjvPYGI6n-wbRsdLaNDaRjJAJhzkeQm8oOYjCwaD1ofyxY5H6RPrQpx-ZLF6b6XCI=CEQzYoOvC_culHfSgzqrFun-l86m9mjbz-vt_IhYV7Hjhs9xfZPTcz7dTwzQThhQVLGyec91R55LDKHW77dIXUrBzfF-qXl3DaHRXWDe-A--jMP1jHUugmQMow24c8_GfQtfdYA4mDzcKw0w_4k7lbsg1B3JXZ-W-L0A9WNETgoG5lVqbvZ4XqoVwzYtyyXhyFYjKZbjkKbUuxzvzH0RIn=IqRSFStg2sEoUJ3OYPNqCyMEjrxsEE-dk84OoPHGyk67zc44HGb6Yx0IrlnwIaLYRHabnvdh4Tqccm311Fh2rug27=qloeTQJD5SQYAnTAYe_Gy4PIOnjF7bWOSF7L4OpDZtBp_wpzpqSkG=HaxodRfBmkALXORFj9y2rXNpgVz0I_IbIvyjnB4IVomtgjSEdjBzBILU4mA61kSl=OgDhcu-YbN5bFg9gtU9zg8oy-x_5THu14-cf-xlT4JSaFWgC-F1dd0lkq5OVlS6XTkxO780a8TkvlUT9BZERatl=0VKFJz0-EDwtFkz3Jd6Gjxu6ql4hC4Jo08HkZ0LfW=w9=Jh6LS9fjbI9g4wJXAfSJbcr9QetG8TrxqPtbx2JZ2YyqVSCh0E4PKSacO_OGQA-S=whTLOfZP33wlgyg-2c1lKxAM8AOvL6fYw1LAb0zJTtmg7kUjQJ3txx7jP8EvBB5N7-Ca=6aRcvxAEZn3KHUEMlmgsL4jGNDBdO5pNLh6O6We=LhfTHbyuJa4tTL6PoFUIof-=DOdnIfnn8j=YV7ZsepECy6UAI9oF9skETCsT=BC=M7FbUPudIHKGwGKpIN4M_VCby574xAcw6v6fUCKSzKSxWq-=aLlzHEk3GkpsgQSqq3YsHHSqdnbgWLD4pxocEhcnLJFNhYWwLDYNp26cQ=0mpojkGVMG2U0DamIHJRbW_mqmKIzLcZPSR7xOFltSHNXoven63ASrSqMbI1m=0v7pyEDQ9lgfblcQ3Bh_1QQCgQsf1a5bJ2zRYX8Clf7CyQQE_HDoPrAsXn1yQQP7dWoaxXm6KVefkoGcJM4-=2G5ebZcm-3499uoRrtMtkWNSOePrlO1l-Efrmsadq9KjVoDvIaX3jqeQrcrS80G70Luh4Lw_=fo7UnBxG42zs2DNj7rx=v3vvUxEP6QuwbsfXsr=aDW57l6vzVUZlKG9BtMZx0-ZqwnsFtxHhQkq8UPSR6gz8MEkltkqzBGAFxnN=YmDFz98fDATpOBzAOa12n6V8CqWxKue=Yh3Y5oI487r1JazrX02Y539NFd4bPM4=xZX2WKxb5eEY-h6jDlGHdGKXDWu_u8WwXn2EG=nDyCXpJYh0HY6h_J1GhF2nNnb8NU3to=GljzvqpKtL5Ux_E9KvLpyvToKpOp1kY9kVrIhmX3rwwf739CpdmGo5l1xKCkg73d7jj1X1SHPOk17D-Klsyg=k47IrjWTlRl98g2sWYT-e-6=NXaSham5HFPvAz4d5D_3Xvsfy-IYyRfE5YVx8n0preMcAXkJrrjtI8do3LkeRgalH38nhM1VXoHjoQtvd0qR9vYwko7AOVFpXDOP0vcFg_XG8fGncf9waMPHj04yTpetD-8NQ4OcSKIZvZ=Q110v4yZtTUbPXx0MdEcNtzY0Qt1N",
"user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"}
"ee30zvqlwf-a": "j6-gugOx7f6i4pLAFLRrTdm6GI2AgqyJUbk6I_cbSOQrGXJhNl6xGir8-UQJUva-e=HZsDghTu=Hxxl1_ugBfg7nVrpGRO=8EslDIXPhPFoxVzgw5LO0O0KGWSOeKBdP25kT_ki8q5ImzuW-1j5F1aPap=eoZd50VDMBA4IacSgf2srrH9Ufuyudkmc2QzDivN-Hz81NAz-08IMs4U_EmF-klmnj3pflSDN=048Z8LOS43D1nq24cpJ6dmh66COqpgh3OqMWj7kSjaJ_piXwiNhbk8fc08dgZa3PETRHrSk-vORDbh3JMmHDLBiUck=EEIVQXo3jsjdM0Ku0WScONvNg_2ITOoAk4nRQVMGyIiPVFRFjuMWv0SXJOAnHwv-R1o-LgeF5H=8ZGBSylx8dinuaU8KFPPkCQ32iV0yb9nR2kpqbUjMS7POgm8_F-i2BEW_zHO4lWpRDQDKa=M2EXDl=XT_N6VDSVVMyU1a0zDppJOwErcvmTvYpqmFiidLrgM4e9fWBsPAJBsx66MXRminFN8o02pIyKwW6-_-Vr9ZCC37Z64_7_RELH8SOnzi=4_Hm0UROIEPTiQMNoeSnSK3xYN1ja8=MjLXJDrgDW86p0NFr7Tjj_loSB5GTWOoeXZdYZf1aEfa2PYlI3xHoQZmZBvUuOAzVH8mx40bkczxiwgRzgG=BXs8pm283OUR8i5-=fs_C3Bxk1dRaozjJdoa92AY4Iw=YvBruLJdLh1UcK5U08jozuG634XPaqa6Hdl24hdv=zIkCqVLkWzsr83RXjDiTwlj5x=rpbWnRlSz3cn6=vCnx=U76yEiMpp0lb6bn0F8vKwkmX9HPQxEQFdJmkLi68N0ff9w10fzryrLRQcIXy1hlBb0HnrI045wqkB0-GnSy8Eger34LEhPy_4DUR306B7u_xklC1dfrGGdOnrGueX2Wwq73EmHVge461SwPIQUclyskRb=65Uka3w4E1yYZyDGHz9FVDrBUN2u8avHKUApk1kejuZ-ohuaOhoRpaicCBXIwZQ6gDAz0WAR5pSN7WqX7c3DkY-KGPn6MFMOZqOGhwbi=L_wlV0R_47viRad2sO86R7gsxp9LXAWfRvMJg0hATu9UOmlspaZ_vAIG5VSA5hWLmBb=NZIq_OfiANV=cF=_DqEs=3qQlhjxHqG2hjpAXgd2iWNxszmXxn2FhaoZkV3AEYlxRssEigvzF6EdJTcID6z4wuLrouH-5U-_r0zhqY6iHbjdV_KPLdeF_E0PEffrOOObDQHcKkdDV_=id1YCAgbBLWc-RbC3lkmkd2jp7dPjK_NLdOzKj7LWRVgUEQrIWIxFpji=jcMrUiITR_QBeumkR26k9umVpYzjjlrAl7uNJeQe=hZbo-ckTJgp-uGjubwGmgfo4fB0JhJhsdn9YgRfd43Yf-8udwnS6HKsp4DgVr3aROb7hBosp4SjouXphrR2MIIXuiabAA6np7RK1s=TXf7cpo1gjMzWgeR21CUM2jbRYZhI04WZXTq6qYWf0BdnH1KHG2ERiJ0LnNsWOl_I1-ap-1NxNYj1o75eWQZh6s9Jl56DapmASbuPG76U6fpqQ4H8P2EKUdGYPDdTuEZnxw52VDPysc0E9srjM_MSM712TXMpS_9iiynmVGfe0oiEGCaM9Jep_RfzGumAhFK8sWwfCq4PTkG68Mb3ecvGL_meO0GO5pxhcwce7JFuiIGjs=irkS3-72enRn8M-emY1NphIAF9A1O06fdPEz_u2SQj_Ms7dpa8I1HgDoPIGKIgXq8D0qLqViJEuFUX0SjrClzYwhS_TWD11VMskqxnMhwns3qALM9JdNsX1kFz8PrsFn_cpDIp4ms9jiNFjO03k=owOoq-pP6PxSJ2DrrLoC1wBn8icl283VvLsjirDLnL8lSSGd56mfrvHTO8NyJT6TyFdkmsBqApKOkZXXJQfE7rRu=8uavM419YzgjAUNwEjfBhF0gD8O7mFS7PJNlIpq_vb3e8XX0fvgQH9bvh4uA0bCRIBgN6OuS60rVSM6Dhap0RPLZwL9qM4e=YS9qIkDKc4cfe-kCabOMQJucg5OwzaJglfjEZckojTxnoSM2yuGTHQqPU_nWRCkAOhTWd_hIznBPU_x-F61fVyKMNcR5CsvwwleJis1D1Xa5e4A00ediEayaoCUyaZSFKyx9nGYmThrH=QAld2712j5VM0Ghse9qAHP__P9uuA9u2hRymo4HM3f3SjdOQ0RmzsaNv23maNRChfnWDaGwLv=n1BrHmjxYyU8iCResVBeDhcIZHjhYxw7wsERxIeZbmrgLQiPcq-AycAuElpH1G7_0aP5Vnp10sD9AeUCNn4bnWcVTr==lWrTPFMAwRMEQ1o01Vr2_a=5DgFRXrJJuTaDWNvDmZaCIUFUbesSjfAJR36HAjlKSqianugbIOzdEqmjeSqR7ax1a9GfSYao=Df_bB_swi7juhqukn6rQkgj=897rSkWFU533DWHAlzB_cNmT4c=nCh9m5zVkolh21zkUZBcEUAY49OyEVaYVGh-wb3XXbQskHc9==AbDUlpDUZ8FHNSYlsASuv27Q2af2a9TOrf0QQ1EKgCkpvJNlim=pMMSB6J1sMMj4yi4OvBa=1gfR=Vy=2U7STICI44reA7po4CfQeRxRf_bzGbmc8ucCuWdf7VQek7Nc7YlCvZa=i1HVlMB_mXmPsMkOCeJWOEoqkW4Pl1bQiGzeLcvy=j7vNvKMULZ2IVVrFMIHWG6809giuO93Qoaig1IG7UO48JXaGkD_CSWhKohY06xx6MDcUKUGur9XjrLWm-zZRuK6SiBym97gonX9T9lcs81TY66yJ9bPaoaHxKk7F7nnIP3pD_HvsQ68T7VNH4ueYwwXGxjv=RfNKQQYbD6Y_Xc8LowoHo9nXMmNVbpRVdgapnbY5Xu9Xp_eaTF4oUSLBs7YjEZAwXAxC3ompvAxLzRbLLef6BTkZuRz4owUpx2N0qFWoupqQ=Rdy0EY=mG=XkkPqQQoue=zcAWpCy5m9uBaVnBKWuhuFuWd1Z3SIY9cZP0T_WTr6rGqnFdW9VS1144917y--0m2HPFeL=wgVkmr-k7PYfXwn1cnIHH2EP5jgQYiklBxkbU61V0TuDsCOvnSHlerFVdcjXJ4-0Chz5eshyDYYqazHZbIYABaJcq6SFOiQAjcrsWmSdfyEWAWdR_-OKn8yNk0pfGEImuMhAfAsXIP5jnVJrFG1EMocn2vHwCH_T9wKkZMdWoANyyvv_T5APDUNXUMWfXmP2pCBI0K9AOedsB_BFvCusTn-FGQ8yyORmP8nznd7oVroAiLRAxLShlh1zol84TMpNT=5j7ku6drUeVwQhOrWAI1xl4ABeE_k6bSn=14bjD3aeqlFgTPI8Pl6oAQFUSzIDEciYwg9X80E9aavB0TcOlTr_P2zRI-Hnm7HIEqNAJ8aogFmqy5=v2H=-Y-PQC5_WGKsTgB3cd0=eT3dlkz5-k_onS1SxN1zFpm7INlSGolKJlWLJ=ZEsLHM8M1xGnqa9eZy3-4YP=MkMqqfBlqZLRym7kZB7wMWmBl7h3ffY=ABr5czxM9gCPLQNDSWUSr_ITa7BXVKsJjfNukke_FuGsETFIJ13hGnL46XX-wGQhQCTQI7D=ESRfrSIhf2X3OGAEoeJ5JwPySxAXv=d-snFfj7cVPTirzYQ-yOo5LykVJZU6VJcHSFrmM5UiM4gU6v30nw_d=cFEDoOvlybAwv1v9nRID-9xWxy48cqYli0FxqwF5z9vWE=QIM4fiBAoUsZ3pcH9zc4bdZfFXDo=UP=RXHmi=SD587geOOiOvoHsX-JQgWRWOsKwn_u5T4SQye=eZvMvQQcrRA-dTx3J-XifElOO9=XhCgXSKiP4kjSDllCiqD0PHL31idKjKsXOgUabT6IHzjHkXaIiQkvBA1ylqBee-sYp8EU8BZCZSuqVR=-j0205YJgjv_=5nRTRoQpEu8pSP-92YdmwvfMzaBBLrqLDeuDpsExQ-qIbHmJ-W7DRuTzjc8Yd01ZbKoeRSWZWyMzDk_cCBZBE_bnh6KneA8QY2AGwabbCDnd_5plRa=AZIWyTNsO1puDOMkKMihqBkAkI-EKuxyh7WCb3rmzIHspBLg3kA1bJumUT9hzJ-gIxC1L-L7jvPH8CeEpAhepcET5-Oml=IUMWBhfHHFS9PeHEISYxnoqdyzf0b47zu3XrorAP12qxGYFrW16PNR1VSYsugh2CSjAGR=wP=p0XZWwgjQlBbrLILMJ0bRgZSfk3ljuSfzhm0mxIM4CEbaIUp95-G75wL9C-pQUVv-=J=ZKP6BqB0P4Ju8QyHMLxUHEJHx867pkxE2HdfRvn7xjPLjYEkL1z-f2GpJ978Q_1fvK3u-Ai2wo2iDwkueiO1lQ=UNolbX0yDlcyk_b0zWRkcjG5Z3HWim3qcZENS7Jk6hEYgUzLGFD2_F8d4-5hMv-KLYp52HpoczXsdR=CO6VPgDSJe0TyyQwdPJNXKvL5nVZ-M7phi9w=i6KFpVukbJ0=gu8zKVU=Ng7LFLXlBQD=hdwpo1ReNkEYiXmTPsKE8IsH5DAwcZVYR6Gqsabje6eX8VnW3jjos6xZGA--OnA=NCOQFz23Jp4HsLhAHqyUIRc_Uy7jAOXHuMXoKwAXVUJsk3W9I1r2dNxoS1H9KY0zmMAJ_Bg7M2PLHJ67FT-Oi_QHuBP3UwQPCGW_UWUm-Wxkuw6MLryi1qYPoZRTHC2KCZdBPqnlKSwxgLybQfyAOPxsl7BLGNn18B-B34zQfkfyJJlW34PMKr8deI=hzWQqArhfsFJiKf9qvmwugVDP68NDWqE85k4kqU=pQU4oZk=obHqJVQD9hIsqSxAwZHhbxKbRhd3gvF2PQBOs6E5cTujbgdzDKXSWB1NCdoG5nwA-VFj=jQxT2V-l1jVUyMZf_UguN0x29ZIaMQL7RToMFh4=igBNRQApLgZJa0FrSicsAGoA7fg2oUwj18698vYRdMAnUOK_zSFBxqP5Nu2OYho2ax-L-FRQOAqvcVffN8fZzQDFCslEPP-dnEEilwDp9Cmqf2zgd8y0Z488IVGHSdYdc8vW27fZ7KzaA9HsxsT4Gd58wFo9UJu6oEdWHLXXcN_pSwanzrsqBiOonzhuCWNkk8fZWJZz-WYW1VpHFNv4sMLY6-ZuoCgrGNzInhSwTk803hdcJbDZ66rUx6wIUjxCyqMF7=ELXIVr=3C=y2xXXX1C5-3s0DgsXd2Imr6Y0CzQwPiAuI4=vpaw5S9lSbVZknR1lhz9Ej79JmTiauAiVoCDLqlVNLZIE74g9_Kzp=GazrISH1uYoA_EBEaSCiu5=8v4Jz=dFsjj3G5z3-j_ZSi4MTdZhyGi1xQ6-_8a9arE0KZ7FMnaTdHGMH1BHADDTYIQjZ6W4LzrIgnHyBZL8m_wYQKzlN=frsZsDoJz1Sw-VG86V6W0lkqpzaqopFr1D1lfA9bWOJdn060wECMV8fwC6hId5WaHuepUwHF_aqhXHXGoNeDFqpBHU_BuMKxWfYfmUTQmDHXYDdZNzg5m8NToix7re_aOLqyzpuZ-vQVX1MRNYprRI5kT-6P32zLDkrMjWRd3XJN1IkFsdb59G=inoh6h5O0xFTyfnRoN0HMYg222F3_Zq0WH4UQH9jma1hryWXh4FSTVLzwT6iqB=zoDxaBLw6B2ocUFER3cfDpJi6=BWNFTuQ4wQGJlc86LwBCvmv23ko8=QASnCmY3DFDClc_2B4b7XY12boEpfpw1EYON_QVF=QJTylvUvs2dJDawgBsCb1sNC7FeGBW-ibJUsWUeHLmq_j7uUS0G_2UrGvSOwmWkkoYvrvkjoO9w4wMf=QFKf0OdFVL9q-hMc=ehuNFcldIEuDkmyzS-IT=Zn_Ob9Hkn6wowI4G5=55yADa528_kbsDlCR6a-FoUnxLD5v1Uy_p4zwYACQZHo47O=Y4qHSZ13iZ-roH7f0VR-ljym_kbYrhcMgcU=z0c-zwuldSs6dVVllZxFub7Mn7jXqSDXnDXlvz==ubm1LL3YMmFlFRYseHGyR5MUq4PSZRnJzfnYwfx3qEjPNecn-vEd6kpEYFcp4uwK28XTzBpGzMgrBl8UuZKzb500T2EfzzjJFcFomBhOcX5CBMWr-aKwuYRXP_9rWZCJSQSQgre705kPkhx3DXT9_qUna_lsIm9WoFURlWTHeNHhWTKrImoXriryyyaOZGKKDG06igYWDafW1=KXVKEu-8n9UrSYSK55nNHJmGYWk=dz",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
"xhr_url": "https://ponos.zeronaught.com/1?a=5cb20fb2094ea5a63f821517fe9e6cb5fa915a1f&b=A-PmPAyNAQAAgUl7aSssZyOhuHpR_d7rd9GxrX-68KVxyU89RcBd5CKJI5VxAReeaPYAAAAAAAAAAAAAAAAAAA==&c=-583944288",
"xhr_res": " wKCkssDpywQarQ7EWHYO9A9LcsDVAcpQOs839SbG4W90pTjsJsXEE8yklTkcQ6ZMbMV2CTX0rRz57zbqR0hAeuaFw8I+ILuf8mm+PWc75BuUMl+6ZKGurHG7DtD/zmOpf/1CALR3v4rB3CWAyhefN+J8UBiDzvsxIhVadW8+4aGUOhFelNxik7WyD++VelgkZRX6DkP0z3UCnyxKg4t+8rBeGEMlEUPDtepFsecuY74M9OE62jcqakZoP/CxdnjdnVh1mE3NBW4wI7KeOH4CJP092rpYWsJSk8VqDSAOxa4lf6fVBsXDKV1m5yOiX6UubHTV3rEBB+m6Aii0aRDifR0OChCDTTSwERYlhU3G98jSm5Xo0MzzjzuG+J/Q20/c7uFRT9oOtWMPd9hmi8upJMhex57Ko49ACVqOnZ8d1PCisAqp7cd3RDMt9uoYTHV8Gx+yDmtRlzJMI0zwUBFy0C1M1RKuhVVBlxJdmWIneIMq/ukXWHd1meweIZHPEPKcXM3Jffqkzs558a/HIU2uhwDd1Le5ziYN6h7eY0JEM//QLGt/t3FwNUDjLATOZl7j7Q5FBCDfc02neHvV6kcZ40fhLj/1l5BKsJa2as8xu1ljxn0Inh6s7E0EvEeMzcwIS9kceg5MUBMtsqdpwHv97MIP4fBL9JV5zB1FQDREHEvlpqI93EkkgA11Xk6mpOUXKmmg4HVZFeHoCZG/82RKqLfvDvURDTWlK+sGlZaQJV+2WAV3ZCyRBeJirIV/LqOmf9IoJcNpRk8raOMWt5JxQ4VTcswfLg79G7BxKaIOe3shNMJTY9my4FoL4q4/yXxIgW0phl7WKWNJDjpwd4N3molzhRAWS630DB4gtlbUS2SdmDr0BJ9gUmgd7JGjra0CgR/xs5WfIQ1/HDg8/c07Pg=="}
)
headers.pop('xhr_url')
headers.pop('xhr_res')
print(len(headers['ee30zvqlwf-a']))
url = "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping"
data = {
"adultPassengersCount": "1",
......
......@@ -15,6 +15,113 @@ from pymongo import MongoClient
from loguru import logger
from curl_cffi import requests
def get_random_location():
return ''
t1 = '''var _hostname, _origin,_host,_protocol,_port,_pathname,_search,_hash;
Object.defineProperties(location, {'''
t2 = [
''' href: {
value: 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true',
enumerable: true
},
''',
'''ancestorOrigins: {
get: v_saf(function ancestorOrigins() {
return new DOMStringList()
}),
enumerable: true,
configurable: false
},''',
''' hostname: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},''',
'''reload: {
value: v_saf(function reload() {
}),
enumerable: true,
},''',
'''protocol: {set: function(arg){_protocol = arg}, get:function(){return _protocol}, enumerable:true},''',
'''host: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},''',
''' port: {set: function(arg){_port = arg}, get:function(){return _port}, enumerable:true},''',
''' hash: {set: function(arg){_hash = arg}, get:function(){return _hash}, enumerable:true},''',
''' pathname: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},''',
'''origin: {set: function(arg){_origin = arg}, get:function(){return _origin}, enumerable:true},''',
'''search: {set: function(arg){_pathname = arg}, get:function(){return _pathname}, enumerable:true},''',
'''assign: {
value: v_saf(function assign() {
}),
enumerable: true,
},''',
'''toString: {
value: v_saf(function toString() {
return ''
}),
enumerable: true,
},''',
'''replace: {
value: v_saf(function replace() {
}),
enumerable: true,
},'''
]
random.shuffle(t2)
# print(t2)
r = '''location.href = 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true'
function set_href(v, href){
href = href.trim()
v_console_log(` href[set]:`, JSON.stringify(href))
if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
} else if (href.startsWith("//")) {
href = (v.protocol ? v.protocol : 'http:') + href
} else {
href = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
}
var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
v.protocol = a[1] ? a[1] : "";
v.host = a[2] ? a[2] : "";
v.port = a[3] ? a[3] : "";
v.pathname = a[4] ? a[4] : "";
v.search = a[5] ? a[5] : "";
v.hash = a[6] ? a[6] : "";
v.hostname = v.host;
v.origin = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "");
}
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
set_href(location, 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true')
window.location = location
// window.location = new Proxy(location, {
// get(target, p, receiver) {
// console.log('locaiton get', p)
// return Reflect.get(target, p, receiver)
// },
// has(target, p) {
// let res = Reflect.has(target, p);
// console.log('locaiton has', p, res)
// return res;
// },
// getOwnPropertyDescriptor(target, p) {
// let res = Reflect.getOwnPropertyDescriptor(target, p);
//
// console.log('locaiton getOwnPropertyDescriptor', p, res)
// return res;
// }
// })
origin = location.origin
'''
return t1 + '\n' + '\n'.join(t2) + '})\n' + r
def md5(text):
......@@ -66,11 +173,6 @@ headers = {
"x-api-key": "l7xx944d175ea25f4b9c903a583ea82a1c4c",
"x-app-id": "air-booking",
"x-channel-id": "southwest",
"x-swa-di-dtid": "null",
"x-swa-di-pid": "undefined",
"x-swa-di-ue": "",
"x-swa-di-uid": "undefined",
"x-swa-di-usid": "undefined",
# "x-user-experience-id": "094ff7f7-a044-4b53-973a-b9e4a9374001"
}
# tlss = [ 'chrome_103', 'chrome_104', 'chrome_105', 'chrome_106',
......@@ -99,7 +201,6 @@ while True:
code = open('src.js', 'r', encoding='utf-8').read()
for i in range(30):
try:
# selectId = '55a8fe24a752595e774341d6'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
proxy1 = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = random.choice(['http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000', proxy])
......@@ -110,28 +211,27 @@ while True:
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
tlsV = f'chrome_{random.randint(105, 113)}'
proxy = random.choice([proxy1, proxy2])
# proxy = random.choice([proxy1, proxy2])
logger.info(f"success:{success} proxy: {proxy} ")
tlsV = 'chrome_112'
session = requests.Session()
# session = tls_client.Session(tlsV)
# session = requests.Session()
session = tls_client.Session(tlsV)
# session.timeout_seconds = 15
# session = requests.session()
# session.proxies = {
# 'http': proxy,
# 'https': proxy,
# }
# if platform.uname().system == 'Darwin':
# session.proxies = {
# 'http': 'http://127.0.0.1:8890',
# 'https': 'http://127.0.0.1:8890',
# }
session.proxies = {
'http': proxy,
'https': proxy,
}
session.verify = False
if platform.uname().system == 'Darwin':
session.proxies = {
'http': 'http://127.0.0.1:7890',
'https': 'http://127.0.0.1:7890',
}
selectId = random.choice(list(envs))
# selectId = 'a74b38e7115cf4d1b1f6976c'
# selectId = 'a74048568ce5f6140df6d956'
if usedTime > 5:
c = session.get('https://www.southwest.com/assets/app/scripts/swa-common.js').text
m5 = md5(c)
......@@ -140,16 +240,16 @@ while True:
usedTime = 0
logger.debug('js变化')
token = re.findall('nt"\),\["(.+?)",', c)[0]
db.token_shape.insert_one({
'_id': token,
'update_time': int(time.time() * 1000)
})
code = open('src.js', 'r', encoding='utf-8').read()
# db.token_shape.insert_one({
# '_id': token,
# 'update_time': int(time.time() * 1000)
# })
code = open('src2.js', 'r', encoding='utf-8').read()
with open('src_run1.js', 'w', encoding='utf-8') as f:
f.write(code + '\n\n' + c
f.write(code + '\n\n' + get_random_location() + ';;' + c
+
';;;\n\n' + '''
if (randomEvent){
if (randomEvent){
window.mouse_move(startx,starty,endx,endy)
}
......@@ -172,6 +272,8 @@ setTimeout(r=> {
"pax": {"ADT": 1, "CHD": 0, "INF": 0, "UNN": 0}, "redempoint": false,
"pointsBreakup": {"option": "", "value": 0}, "isMultiCity": false}`)
xhr.setRequestHeader('user-agent', ENV.navigatorparams.useragent)
xhr.setRequestHeader('xhr_url', xhr_url)
xhr.setRequestHeader('xhr_res', xhr_res)
print(JSON.stringify(xhr.headers))
_process.exit(0)
}, 1000)
......@@ -179,11 +281,12 @@ setTimeout(r=> {
'''
)
# f.write(code + '\n\n' + get_random_location() + ';;' + c)
code1 = open('js_dom_run.js','r').read()
# with open('js_dom_run1.js', 'w', encoding='utf-8') as f:
# f.write(code1 + '\n\n' + c)
t1 = time.time()
selectId = random.choice(list(envs))
# token = list(db.token_shape.aggregate( [ {'$match': {'update_time':{'$gte': int(time.time() * 1000) - 60*60*12}}}, { '$sample': { 'size': 1 } } ] ))[0]['_id']
# token = '11'
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
......@@ -191,6 +294,7 @@ setTimeout(r=> {
# p = subprocess.Popen(['node', 'js_dom_run1.js', selectId, '11'], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
# p = subprocess.Popen(['node', 'src_run_chrome_105.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
# p = subprocess.Popen(['node', 'src_run_company_chrome.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
logger.info("start execute js")
p = subprocess.Popen(['node', 'src_run1.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
output, err = p.communicate(timeout=10)
......@@ -199,13 +303,17 @@ setTimeout(r=> {
tmp = output.decode().split('\n')[-2]
else:
raise Exception(selectId)
r = json.loads(tmp)
r: dict = json.loads(tmp)
# res = db.env_shape.update_one(
# {'_id': ObjectId(selectId)},
# {"$inc": {"used": 1}}
# )
usedTime += 1
print(r)
xhr_url = r.pop('xhr_url')
xhr_res = r.pop('xhr_res')
print(xhr_url)
print(xhr_res)
headers.update(r)
# headers = r
logger.info(f"success:{success} total:{total} {(time.time() - t1) *1000:.3f}ms {len(headers['ee30zvqlwf-a'.lower()])} {selectId} {headers['user-agent']}")
......@@ -236,9 +344,10 @@ setTimeout(r=> {
#
# if platform.uname().system == 'Darwin':
total += 1
# response = session.post(url, headers=headers, json=data)
# logger.info(f'tls:{tlsV} proxy:{proxy} res:: {response.status_code}')
status_code = 400
response = session.post(url, headers=headers, json=data)
logger.info(f'tls:{tlsV} proxy:{proxy} res:: {response.status_code}')
status_code = response.status_code
# status_code = 400
if status_code != 403:
success += 1
uri = 'http://ymx-lcc.unififi.com/header/add'
......
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment