Analyze the js code execution from the website, and then extract it. This extraction process is more complicated than before, and finally use execJS to execute the JS code

Step 1: Familiarize yourself with the requirements

Target website: unicom_trip.133.cn/city/?syste…

The part of the data required

Step 2: Find the asynchronous loading interface and analyze the interface data

We see the data displayed on the page, and we go to XHR for a request

I think that’s where THE LXA comes from, right? Date =20220303&type=arr data obtained in the request, we first analyze whether there are encryption parameters, found that there is no, can directly request to get the data

When we look at the data, we see that the data part is a string

Here’s a trick to note:

eyJpdiI6IlJQSmczT0hzVXo1ejE5M3IrbnZmbkE9PSIsInZhbHVlIjoiTGJBZFU0V1BtV0R2MlwvMEltRmtpNmc0XC9tN3RCQ1wvT3BkY2hCXC9CdTVKSnBV QzU1Vno2NjRiZ1NVTEVndlZoSVwvN1NCb3hITTlHbXU4UlZuekNlMndWVWN6endNcHJPNGV6ZVVzY1BXOXlJVHdTV0JmK0JldVlkZWVRWFBvS2ZpT0l0QTUz T2VRaHdHb09vNmlOZEM5djhuK2JNTENndXhaQjlqaVlUdERkSHFOXC8xZEFkUkRpRElGUkkxem1NK0FjNzRMT1duaFZqalwvVmltQ2JIaWdsUkxDYjlaajlh THZYOE94b3E4aDNlRk1WXC8zbDN6KzhUYVwvOUZ4U2NWTmNWc2p5Z1NHMnZoT0JTUXZBQkhMSUZTVWhWUEl4RkdROXBWR01VN3VpdGdzaXNSZ2NiWWg4WDhP b0x0bWZ5YytBSkZJTFJwYUIxNjFUMG03T3BkRHdiZnhSUVNlcDREdzFmSWxmUU1oejFwM25HT2V1blBwS0JCREJrZlFBU1wvaU1PSnREa25hRFl6eGh3SnpV djE2NE1oSVwvUVwvVDlqQmtVTm5QMTNReWRFT1pCdGlJOHhyWkhNYTdZb1NSVHpBTmVWR21RMUdoS3FtbVgxZGZZS0JBbHFFcTlIb29aaHBhNnhjem44bU1C ZlwvcjcrNmdlQVBcL2RuS2xXdG96OVlkcDJWdGQzVkppZlVQQlR6M2pWRTVOM0JQZFFxS0kraWZvdjh5czZQNjBBQkZcL1FaTkhjUkNqS0xIcFwvRjZxNFF6 ZEMyWVpGdUh5bStWMUpWT3NBYXJjdmdqWlRtUFNhbys3cDdyRUhMTWVpblFpSkNVejhcL2VGMnFHMEFYTmhmMWdkUEdnSlNXdGtHM3B6clNMMFlMdFlwUFBE WHIwY1dDdUVEaGhHSDhmNFp1YTRZNWQ4eHZLZXlCWHNBV1VqSFZ2TzJhK0RtWGhGQ3AyTmxPZ1UxZkhONlZMR3hEeDkwZTRvM051TVExUVN0OUdYSzVQRzNZ U211NE5QUzdpNDdcLzJrcG9CNk9TR0REZEtcL1dBNGI2ZG83R0h6RTJ0ajBKWUNFRXpKdUErMTRlTEk2anJwaHVlMVwvYmFcLzRvM0VjcUt1VnppNUNYTEd1 a2FzTGpvck0zYVFPeEJRMXRtK0xHcFljVGM1TDlzTW5xRDduQU9EMDBTSDhPR3NHVmpSNDhsMTc5N1lkMGRSMWdOVzVoYk1TekxjU1VDVGJ4SXRnWnNpR25t VU9QZWlZV1ZLM1ZyOFZPd0hFYUVNY3JrUXEydGJjQlBPb2w0WHdUMTJBNGxidWkxUnV6dVBpT3NLeGFrQjBcL3hrb1dvTWdIM1YyNGpZem1vN3VTZ3o1ejQ2 OTFHZ0piTzNvRkJxYjk0QW9nRnR3N3lSTUlad0RLRWx4WVJacEZGcE1hSTFpZUdKcnhKUDVkSUlaVVFzWU95cHlucExSQm5DVVZobmUzV21UaHY2SXl0N1Vy QVZMQVVCZmJyTlZ2Y0trNkJnc2VcL2NJWTh5MDJNa01KWlRhODN6YzhXdFl6eWFYdG5vVWxVc2xPVXZkSVwvNGVxWVdraEdibUEwMW9PQzNXeGF1NmkrRWlj YUlNNmZvZThWNVBFSm5rY2FHd1NlNkFxZFd6cjZpSzhLbEg5SGo5UVFibGkrQlwvM29WS3RYRjJsaklDRlAwS3lDWFNxRTZTcndNOUl1YTcwYVgwQTVCclpc L1BCbEpRSFNUeVdLejluaDdUajJVMnlUdjczWjhibmNzVG1WR1R1Y2V6U202T2d4YzgyWTBoZkdPc0ZnaGFBdU1XellzeUNBK09UT1wvckVPVnZ3RXBmYmFr bHY4WkQ3dU1RYnc2OThEQTl3cU1ERWM2UmdheUwyc2JcL1AwRFFadVV0QW1yZWdVU0tRVTg1QWdKTlpiY3l1QlZWajE5NXVrMDZ6eWdhS3FwWTFJd1ZUWDky YURIZEJQdkhuejNwbVNMUjlyWWtSaE5xV0p3UGNmZ0xETWJGNUxzZ05yZFdQcTVEQzVFN1M2R0RVMkdzQ2xuMDM2b0tMSXgyVHRUb0xDa1Mxdlk3RzJxcldz MWFlR0FIcmozSUloXC8wdTNMdmVsSjRrZFh2VFhud21DNzNnV2s0bUhoRWZLWGFOc1d0ZDZMajAyNEREcEtqb0FDUWtnb2tsN0JcLzhsYnFhNURzT09Lc3Jq MDZVWVVMTWR3a3ZraFF0V1JLbFlvKzViOUVVZHVVZE5pcUEzMmZaTWIwYXA2SUFxcDl3UkowMWxDOTFDYWpPeFJtMUdDeUVxNWUzZjNqZG0rOEdaUEcxcnZD QWdNQTBBUnU3c3FYM3U5WVV5NU8wQWZZWDNoWFgxTmVCekR1WVdNaUxwSW9ZaCtONVZRT0o1aVQ4S3hhaHpuM2l0c3JnSXh4NnR4dkZtNUJGbStsczN0QnN0 b2RcL09rVDJvYzBSV09LUzhYdUpsdCt2QlJcL0tPSTBUYW15am5jYk91RDFKa0xQRHRGNjZJZjRHcDQ0bjJYXC80Q1FpSkQ3djBtSnVNTXZiamVTUzZOejlm eFdiN0V5RHNpKzY3ZFExQWttVmx3TEtUbGo2ZEU3MFFuV1pyRWo3S21yUUJZdENqNEFXb0diMGRCeGM0VnNHcXh0OUlLV0tMSzFyZStZdlRpa05nUFFNYnlL OHJQRGJvZTdpZDdxa0YyNlhjY0UrOWtKb1VISldjYnZnYmpMNnNZOEVrMEM2TFJJMGpxOEtPN2dKNDNtN2ptWnhROVlXVGJvdUNqV3dkS2lZM24xdGFBK09J MzFsc3hBU0tES1ZLVmFqb1lkMTVhTXRIOVFuVnFxQkFGRU1mZHFudGMreXNEWVFYMTByd2szeWJ1M1ZWWDdYTG5YNThNMmNnM21VQlZlUW9lXC9LNHB6ZlpL R2tzTHh5amdkd1R2K0pOVHQyUGYxQngwOEowRHdtZERyN0pUOHhHQktcL2czR1NnVkdXNXlSNzB4VnM4QmhnYUhkZjM4YU1jUGpBRWdjVEIwR0ZkUWVPQmtv REw5cHdrVWVnWjYrY09GOHBmTWQ0Q05rNXAyZUV1dXd1ZGxwU1psenRmQTFneXIzS2lHXC9UNFE3RHAwV2pqQ2daUHZVczJLVUt5NHlRd3lIendWdE1xMkVQ emxwMXViUFJ1a1cyUlwvQSsrNkZIdk42SGlGMFwvM2UyRDNUckNYWXJkSFZTcGp5bHBaRG5hZmNjeWJQTlwvM21vS1wvT3V6TGdaQjBsNFdHZERVNEd2cjln RzBLeXdZaXNVaGRPbXJZR2w0dUh1cjJMNnFlcDlRaFFRN1orRitoTGVoUUs3MUxjSU1md1hFT1VWMGZRYlozczZ2b0lJQUhWZFlqUjJFQTBQUDZGQ2w0YVQy WEhuaW1sZ3l1K1dNUXdmbTFJREJsNU9lTXNwWkU5UWoiLCJtYWMiOiI1NTQ4ZWU0MjAwYTQyYTJjNDAyZThlOTg3ZjE4OTdiOGM2MjQyZmJmNTRmNGVhNGQ2 YzkxNGY1NTQzMjQ4Nzg1In0=Copy the code

Data that ends with = or == is usually base64 encryption

Let’s try parsing the data using base64 of the web page

{"iv":"RPJg3OHsUz5z193r+nvfnA=="."value":"LbAdU4WPmWDv2\/0ImFki6g4\/m7tBC\/OpdchB\/Bu5JJpUC55Vz664bgSULEgvVhI\/7SBoxHM9Gmu8RVnzCe2wVUczzwMprO4ezeUscPW9yITwSWBf+B euYdeeQXPoKfiOItA53OeQhwGoOo6iNdC9v8n+bMLCguxZB9jiYTtDdHqN\/1dAdRDiDIFRI1zmM+Ac74LOWnhVjj\/VimCbHiglRLCb9Zj9aLvX8Oxoq8h3 eFMV\/3l3z+8Ta\/9FxScVNcVsjygSG2vhOBSQvABHLIFSUhVPIxFGQ9pVGMU7uitgsisRgcbYh8X8OoLtmfyc+AJFILRpaB161T0m7OpdDwbfxRQSep4Dw1 fIlfQMhz1p3nGOeunPpKBBDBkfQAS\/iMOJtDknaDYzxhwJzUv164MhI\/Q\/T9jBkUNnP13QydEOZBtiI8xrZHMa7YoSRTzANeVGmQ1GhKqmmX1dfYKBAlq Eq9HooZhpa6xczn8mMBf\/r7+6geAP\/dnKlWtoz9Ydp2Vtd3VJifUPBTz3jVE5N3BPdQqKI+ifov8ys6P60ABF\/QZNHcRCjKLHp\/F6q4QzdC2YZFuHym+ V1JVOsAarcvgjZTmPSao+7p7rEHLMeinQiJCUz8\/eF2qG0AXNhf1gdPGgJSWtkG3pzrSL0YLtYpPPDXr0cWCuEDhhGH8f4Zua4Y5d8xvKeyBXsAWUjHVvO2 a+DmXhFCp2NlOgU1fHN6VLGxDx90e4o3NuMQ1QSt9GXK5PG3YSmu4NPS7i47\/2kpoB6OSGDDdK\/WA4b6do7GHzE2tj0JYCEEzJuA+14eLI6jrphue1\/ba \/4o3EcqKuVzi5CXLGukasLjorM3aQOxBQ1tm+LGpYcTc5L9sMnqD7nAOD00SH8OGsGVjR48l1797Yd0dR1gNW5hbMSzLcSUCTbxItgZsiGnmUOPeiYWVK3V r8VOwHEaEMcrkQq2tbcBPOol4XwT12A4lbui1RuzuPiOsKxakB0\/xkoWoMgH3V24jYzmo7uSgz5z4691GgJbO3oFBqb94AogFtw7yRMIZwDKElxYRZpFFpM aI1ieGJrxJP5dIIZUQsYOypynpLRBnCUVhne3WmThv6Iyt7UrAVLAUBfbrNVvcKk6Bgse\/cIY8y02MkMJZTa83zc8WtYzyaXtnoUlUslOUvdI\/4eqYWkhG bmA01oOC3Wxau6i+EicaIM6foe8V5PEJnkcaGwSe6AqdWzr6iK8KlH9Hj9QQbli+B\/3oVKtXF2ljICFP0KyCXSqE6SrwM9Iua70aX0A5BrZ\/PBlJQHSTyW Kz9nh7Tj2U2yTv73Z8bncsTmVGTucezSm6Ogxc82Y0hfGOsFghaAuMWzYsyCA+OTO\/rEOVvwEpfbaklv8ZD7uMQbw698DA9wqMDEc6RgayL2sb\/P0DQZuU tAmregUSKQU85AgJNZbcyuBVVj195uk06zygaKqpY1IwVTX92aDHdBPvHnz3pmSLR9rYkRhNqWJwPcfgLDMbF5LsgNrdWPq5DC5E7S6GDU2GsCln036oKLIx 2TtToLCkS1vY7G2qrWs1aeGAHrj3IIh\/0u3LvelJ4kdXvTXnwmC73gWk4mHhEfKXaNsWtd6Lj024DDpKjoACQkgokl7B\/8lbqa5DsOOKsrj06UYULMdwkv khQtWRKlYo+5b9EUduUdNiqA32fZMb0ap6IAqp9wRJ01lC91CajOxRm1GCyEq5e3f3jdm+8GZPG1rvCAgMA0ARu7sqX3u9YUy5O0AfYX3hXX1NeBzDuYWMiL pIoYh+N5VQOJ5iT8Kxahzn3itsrgIxx6txvFm5BFm+ls3tBstod\/OkT2oc0RWOKS8XuJlt+vBR\/KOI0TamyjncbOuD1JkLPDtF66If4Gp44n2X\/4CQiJD 7v0mJuMMvbjeSS6Nz9fxWb7EyDsi+67dQ1AkmVlwLKTlj6dE70QnWZrEj7KmrQBYtCj4AWoGb0dBxc4VsGqxt9IKWKLK1re+YvTikNgPQMbyK8rPDboe7id7 qkF26XccE+9kJoUHJWcbvgbjL6sY8Ek0C6LRI0jq8KO7gJ43m7jmZxQ9YWTbouCjWwdKiY3n1taA+OI31lsxASKDKVKVajoYd15aMtH9QnVqqBAFEMfdqntc +ysDYQX10rwk3ybu3VVX7XLnX58M2cg3mUBVeQoe\/K4pzfZKGksLxyjgdwTv+JNTt2Pf1Bx08J0DwmdDr7JT8xGBK\/g3GSgVGW5yR70xVs8BhgaHdf38aM cPjAEgcTB0GFdQeOBkoDL9pwkUegZ6+cOF8pfMd4CNk5p2eEuuwudlpSZlztfA1gyr3KiG\/T4Q7Dp0WjjCgZPvUs2KUKy4yQwyHzwVtMq2EPzlp1ubPRukW 2R\/A++6FHvN6HiF0\/3e2D3TrCXYrdHVSpjylpZDnafccybPN\/3moK\/OuzLgZB0l4WGdDU4Gvr9gG0KywYisUhdOmrYGl4uHur2L6qep9QhQQ7Z+F+hLe hQK71LcIMfwXEOUV0fQbZ3s6voIIAHVdYjR2EA0PP6FCl4aT2XHnimlgyu+WMQwfm1IDBl5OeMspZE9Qj"."mac":"5548ee4200a42a2c402e8e987f1897b8c6242fbf54f4ea4d6c914f5543248785"}
Copy the code

We can get the conclusion is that the data is encrypted, the front end from the back end to obtain the data, decrypted through JS, the data extracted and put on the page, analyze JS

Step 3: We need to find the decryption JS part

3.1 the search

We parsed the base64 characters so that we had two choices. We could use a trick, search json.parse or search directly by key MAC

Parse too many searches through json.parse

Let’s try changing the MAC key

3.2 analysis of js

Here’s a trick: we search for multiple matches, we intuitively filter them, and then we hit breakpoints on the ones we can’t distinguish, refresh the page, see if they go through that interface, see if they’re the same as our data, and we can quickly select the variable we’re looking for

We make a break point at the suspicious place

3.3 Set breakpoints and refresh the page for debugging

The detailed debugging process was shown in the previous tutorial, and this section is used directly with lookup

The refresh runs, and at the first breakpoint, we find a dictionary corresponding to the city code and the city name, which is useful for our subsequent data retrieval

In the console we can get cityList, there are too many data only for partial data display

{"999": {"city_code":"999"."city_name":"Indistinguishable"},"V0152900": {"city_code":"V0152900"."city_name":"The Arab league"},"V0152200": {"city_code":"V0152200"."city_name":"Hinggan Unita"},"V0150400": {"city_code":"V0150400"."city_name":"Chifeng"},"V0150100": {"city_code":"V0150100"."city_name":"Hohhot"},"V0152302": {"city_code":"V0152302"."city_name":"Hulun Buir"},"V0152700": {"city_code":"V0152700"."city_name":ordos},"V0152500": {"city_code":"V0152500"."city_name":Xilin Gol},"V0152800": {"city_code":"V0152800"."city_name":bayannur},"V0152600": {"city_code":"V0152600"."city_name":"Ulanchabu"},... 'Remaining data omitted'}Copy the code

We skip the first breakpoint and go to the second breakpoint, and we find that this is where we are looking for the JS data parsing part

After testing on the console, we can see that the data is parsed through this section, so the next step is to deduct JS

** Rewrite JS **: Simple integration of JS code into the desired format

function dataDecode(data){
    var base = new Base64(); 
    var d = JSON.parse(base.decode(data));
    var key = 'UVJgCE+OFIff3hK5BT5sPBbGZzjR6FwntjSCwOA9tUQ=';
    var key1  = CryptoJS.enc.Base64.parse(key);
    var iv1   = CryptoJS.enc.Base64.parse(d.iv);
    var decrypted=CryptoJS.AES.decrypt(d.value,key1,{
        iv : iv1,
        mode : CryptoJS.mode.CBC,
        padding : CryptoJS.pad.Pkcs7
    });
    var d = decrypted.toString(CryptoJS.enc.Utf8);
    return JSON.parse(d);
}
Copy the code

3.4 Tracing relevant JS

Principle: What is missing

We can create a new JS file, put the dataDecode function in it, and run the code

# encrypt_data is available from the request
import execjs
with open("test.js"."r",encoding="utf-8") as f:
    str1 = f.read()
ctx = execjs.compile(str1)
a = ctx.call('dataDecode', encrypt_data)
Copy the code

We get the error Base64 does not exist, and look for the H method, which was detailed in the last tutorial

Find Base64 in the web page and append it to our test.js

function Base64() {  

    // private property  
    _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  

    // public method for encoding  
    this.encode = function (input) {  
        var output = "";  
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;  
        var i = 0;  
        input = _utf8_encode(input);  
        while (i < input.length) {  
            chr1 = input.charCodeAt(i++);  
            chr2 = input.charCodeAt(i++);  
            chr3 = input.charCodeAt(i++);  
            enc1 = chr1 >> 2;  
            enc2 = ((chr1 & 3) < <4) | (chr2 >> 4);  
            enc3 = ((chr2 & 15) < <2) | (chr3 >> 6);  
            enc4 = chr3 & 63;  
            if (isNaN(chr2)) {  
                enc3 = enc4 = 64;  
            } else if (isNaN(chr3)) {  
                enc4 = 64;  
            }  
            output = output +  
            _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +  
            _keyStr.charAt(enc3) + _keyStr.charAt(enc4);  
        }  
        return output;  
    }  

    // public method for decoding  
    this.decode = function (input) {  
        var output = "";  
        var chr1, chr2, chr3;  
        var enc1, enc2, enc3, enc4;  
        var i = 0;  
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g."");  
        while (i < input.length) {  
            enc1 = _keyStr.indexOf(input.charAt(i++));  
            enc2 = _keyStr.indexOf(input.charAt(i++));  
            enc3 = _keyStr.indexOf(input.charAt(i++));  
            enc4 = _keyStr.indexOf(input.charAt(i++));  
            chr1 = (enc1 << 2) | (enc2 >> 4);  
            chr2 = ((enc2 & 15) < <4) | (enc3 >> 2);  
            chr3 = ((enc3 & 3) < <6) | enc4;  
            output = output + String.fromCharCode(chr1);  
            if(enc3 ! =64) {  
                output = output + String.fromCharCode(chr2);  
            }  
            if(enc4 ! =64) {  
                output = output + String.fromCharCode(chr3);  
            }  
        }  
        output = _utf8_decode(output);  
        return output;  
    }  

    // private method for UTF-8 encoding  
    _utf8_encode = function (string) {  
        string = string.replace(/\r\n/g."\n");  
        var utftext = "";  
        for (var n = 0; n < string.length; n++) {  
            var c = string.charCodeAt(n);  
            if (c < 128) {  
                utftext += String.fromCharCode(c);  
            } else if((c > 127) && (c < 2048)) {  
                utftext += String.fromCharCode((c >> 6) | 192);  
                utftext += String.fromCharCode((c & 63) | 128);  
            } else {  
                utftext += String.fromCharCode((c >> 12) | 224);  
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);  
                utftext += String.fromCharCode((c & 63) | 128); }}return utftext;  
    }  

    // private method for UTF-8 decoding  
    _utf8_decode = function (utftext) {  
        var string = "";  
        var i = 0;  
        var c = c1 = c2 = 0;  
        while ( i < utftext.length ) {  
            c = utftext.charCodeAt(i);  
            if (c < 128) {  
                string += String.fromCharCode(c);  
                i++;  
            } else if((c > 191) && (c < 224)) {  
                c2 = utftext.charCodeAt(i+1);  
                string += String.fromCharCode(((c & 31) < <6) | (c2 & 63));  
                i += 2;  
            } else {  
                c2 = utftext.charCodeAt(i+1);  
                c3 = utftext.charCodeAt(i+2);  
                string += String.fromCharCode(((c & 15) < <12) | ((c2 & 63) < <6) | (c3 & 63));  
                i += 3; }}returnstring; }}Copy the code

On the second run of our program, we are missing CryptoJS

Searching in a web page is quite tedious. First of all, CryptoJS is an object, so you can’t directly jump in and find the relevant file, and you don’t know where to stop

First problem, can’t jump in –> Solution: Parse into this file using the following method

Second problem, do not know when to stop –> Solution: based on experience (more abstract)

Let’s analyze: this part is actually a CryptoJS object wrapped in a factory way

The CryptoJS object is returned in the last section

So after analysis, all the code in the middle is CryptoJS object code (code is too long to put in the note, only put in the start and end position).

Let’s put it in a JS file

Step 4: Python retrieves the data and decrypts it with JS

Then we can decrypt the encrypted data we have obtained by executing js files

city_list = {
    "999": {
        "city_code": "999"."city_name": "Indistinguishable"
    },
    "V0152900": {
        "city_code": "V0152900"."city_name": "The Arab league"
    },
    "V0152200": {
        "city_code": "V0152200"."city_name": "Hinggan Unita"
    },
    "V0150400": {
        "city_code": "V0150400"."city_name": "Chifeng"
    },
    "V0150100": {
        "city_code": "V0150100"."city_name": "Hohhot"
    },
    "V0152302": {
        "city_code": "V0152302"."city_name": "Hulun Buir"
    },
    "V0152700": {
        "city_code": "V0152700"."city_name": ordos
    },
    "V0152500": {
        "city_code": "V0152500"."city_name": Xilin Gol
    },
    "V0152800": {
        "city_code": "V0152800"."city_name": bayannur
    },
    "V0152600": {
        "city_code": "V0152600"."city_name": "Ulanchabu"
    },
    "V0152301": {
        "city_code": "V0152301"."city_name": "Tgo"
    },
    "V0150300": {
        "city_code": "V0150300"."city_name": "The wuhai"
    },
    "V0150200": {
        "city_code": "V0150200"."city_name": "Baotou"
    },
    "V0110000": {
        "city_code": "V0110000"."city_name": "Beijing"
    },
    "V0120000": {
        "city_code": "V0120000"."city_name": "Tianjin"
    },
    "V0370700": {
        "city_code": "V0370700"."city_name": "Weifang"
    },
    "V0370100": {
        "city_code": "V0370100"."city_name": "Jinan"
    },
    "V0371000": {
        "city_code": "V0371000"."city_name": Weihai ""
    },
    "V0370200": {
        "city_code": "V0370200"."city_name": "Qingdao"
    },
    "V0370500": {
        "city_code": "V0370500"."city_name": Dongying ""
    },
    "V0372401": {
        "city_code": "V0372401"."city_name": "Texas"
    },
    "V0370900": {
        "city_code": "V0370900"."city_name": "Taian"
    },
    "V0372900": {
        "city_code": "V0372900"."city_name": "Heze"
    },
    "V0370600": {
        "city_code": "V0370600"."city_name": "Yantai"
    },
    "V0372300": {
        "city_code": "V0372300"."city_name": Binzhou ""
    },
    "V0372500": {
        "city_code": "V0372500"."city_name": "Liaocheng"
    },
    "V0370800": {
        "city_code": "V0370800"."city_name": "The jining"
    },
    "V0370300": {
        "city_code": "V0370300"."city_name": "Zibo"
    },
    "V0372801": {
        "city_code": "V0372801"."city_name": "Linyi"
    },
    "V0370400": {
        "city_code": "V0370400"."city_name": Zaozhuang ""
    },
    "V0371100": {
        "city_code": "V0371100"."city_name": "Sunshine"
    },
    "V0371200": {
        "city_code": "V0371200"."city_name": "Laiwu"
    },
    "V0130700": {
        "city_code": "V0130700"."city_name": zhangjiakou
    },
    "V0130800": {
        "city_code": "V0130800"."city_name": "Chengde"
    },
    "V0130900": {
        "city_code": "V0130900"."city_name": Cangzhou ""
    },
    "V0130200": {
        "city_code": "V0130200"."city_name": "Tangshan"
    },
    "V0130300": {
        "city_code": "V0130300"."city_name": qinhuangdao
    },
    "V0130400": {
        "city_code": "V0130400"."city_name": "Handan"
    },
    "V0131000": {
        "city_code": "V0131000"."city_name": "Langfang"
    },
    "V0130600": {
        "city_code": "V0130600"."city_name": "Baoding"
    },
    "V0130100": {
        "city_code": "V0130100"."city_name": "Shijiazhuang"
    },
    "V0130500": {
        "city_code": "V0130500"."city_name": "Xingtai"
    },
    "V0133000": {
        "city_code": "V0133000"."city_name": "Hengshui"
    },
    "V0142700": {
        "city_code": "V0142700"."city_name": "Yuncheng"
    },
    "V0142400": {
        "city_code": "V0142400"."city_name": "晋中"
    },
    "V0140200": {
        "city_code": "V0140200"."city_name": "Datong"
    },
    "V0140300": {
        "city_code": "V0140300"."city_name": "Yangquan"
    },
    "V0140400": {
        "city_code": "V0140400"."city_name": "Changzhi"
    },
    "V0142300": {
        "city_code": "V0142300"."city_name": "Luliang"
    },
    "V0140600": {
        "city_code": "V0140600"."city_name": "It is mined here"
    },
    "V0140500": {
        "city_code": "V0140500"."city_name": "Jincheng"
    },
    "V0142600": {
        "city_code": "V0142600"."city_name": "Linfen"
    },
    "V0140100": {
        "city_code": "V0140100"."city_name": "Taiyuan"
    },
    "V0142200": {
        "city_code": "V0142200"."city_name": "Xinzhou"
    },
    "V0340300": {
        "city_code": "V0340300"."city_name": "Bengbu"
    },
    "V0340500": {
        "city_code": "V0340500"."city_name": Ma on Shan
    },
    "V0342500": {
        "city_code": "V0342500"."city_name": "Xuancheng"
    },
    "V0342400": {
        "city_code": "V0342400"."city_name": "Luan"
    },
    "V0343000": {
        "city_code": "V0343000"."city_name": "Bozhou"
    },
    "V0342900": {
        "city_code": "V0342900"."city_name": "Chizhou"
    },
    "V0342200": {
        "city_code": "V0342200"."city_name": "Suzhou"
    },
    "V0340400": {
        "city_code": "V0340400"."city_name": "Huainan"
    },
    "V0341000": {
        "city_code": "V0341000"."city_name": "Huangshan mountain"
    },
    "V0340600": {
        "city_code": "V0340600"."city_name": "Huaibei"
    },
    "V0342100": {
        "city_code": "V0342100"."city_name": "Fuyang"
    },
    "V0340800": {
        "city_code": "V0340800"."city_name": "Anqing"
    },
    "V0340700": {
        "city_code": "V0340700"."city_name": "Tongling"
    },
    "V0340100": {
        "city_code": "V0340100"."city_name": Hefei ""
    },
    "V0341100": {
        "city_code": "V0341100"."city_name": "Chuzhou"
    },
    "V0340200": {
        "city_code": "V0340200"."city_name": "Wuhu"
    },
    "V0310000": {
        "city_code": "V0310000"."city_name": "Shanghai"
    },
    "V0320600": {
        "city_code": "V0320600"."city_name": "Nantong"
    },
    "V0321100": {
        "city_code": "V0321100"."city_name": "Zhenjiang"
    },
    "V0320881": {
        "city_code": "V0320881"."city_name": "Suqian"
    },
    "V0320800": {
        "city_code": "V0320800"."city_name": Huaian ""
    },
    "V0320300": {
        "city_code": "V0320300"."city_name": "Xuzhou"
    },
    "V0321000": {
        "city_code": "V0321000"."city_name": "Yangzhou"
    },
    "V0320900": {
        "city_code": "V0320900"."city_name": "Yancheng"
    },
    "V0320700": {
        "city_code": "V0320700"."city_name": lianyungang
    },
    "V0321082": {
        "city_code": "V0321082"."city_name": "Taizhou"
    },
    "V0320500": {
        "city_code": "V0320500"."city_name": "Suzhou"
    },
    "V0320100": {
        "city_code": "V0320100"."city_name": "Nanjing"
    },
    "V0320400": {
        "city_code": "V0320400"."city_name": "Changzhou"
    },
    "V0320200": {
        "city_code": "V0320200"."city_name": "Wuxi"
    },
    "V0330500": {
        "city_code": "V0330500"."city_name": "Lake"
    },
    "V0332600": {
        "city_code": "V0332600"."city_name": "Taizhou"
    },
    "V0330300": {
        "city_code": "V0330300"."city_name": "Wenzhou"
    },
    "V0330800": {
        "city_code": "V0330800"."city_name": "Quzhou"
    },
    "V0330900": {
        "city_code": "V0330900"."city_name": "Zhoushan"
    },
    "V0330400": {
        "city_code": "V0330400"."city_name": "Jiaxing"
    },
    "V0330600": {
        "city_code": "V0330600"."city_name": "Shaoxing"
    },
    "V0330200": {
        "city_code": "V0330200"."city_name": "Ningbo"
    },
    "V0330100": {
        "city_code": "V0330100"."city_name": "Hangzhou"
    },
    "V0330700": {
        "city_code": "V0330700"."city_name": "Jinhua"
    },
    "V0332500": {
        "city_code": "V0332500"."city_name": "Lishui"
    },
    "V0350600": {
        "city_code": "V0350600"."city_name": "Zhangzhou"
    },
    "V0350200": {
        "city_code": "V0350200"."city_name": "Xiamen"
    },
    "V0350400": {
        "city_code": "V0350400"."city_name": "Sandwich"
    },
    "V0352200": {
        "city_code": "V0352200"."city_name": "Moral"
    },
    "V0350300": {
        "city_code": "V0350300"."city_name": "Putian"
    },
    "V0350100": {
        "city_code": "V0350100"."city_name": "Fuzhou"
    },
    "V0352100": {
        "city_code": "V0352100"."city_name": "Nanping"
    },
    "V0350500": {
        "city_code": "V0350500"."city_name": "Quanzhou"
    },
    "V0352600": {
        "city_code": "V0352600"."city_name": "Longyan"
    },
    "V04601005": {
        "city_code": "V04601005"."city_name": "Anding"
    },
    "V04600031": {
        "city_code": "V04600031"."city_name": "Oriental"
    },
    "V04601004": {
        "city_code": "V04601004"."city_name": Mannings ""
    },
    "V04602004": {
        "city_code": "V04602004"."city_name": Five Elements mountain
    },
    "V04601007": {
        "city_code": "V04601007"."city_name": "TunChang"
    },
    "V04601006": {
        "city_code": "V04601006"."city_name": "ChengMai"
    },
    "V0460003": {
        "city_code": "V0460003"."city_name": "Danzhou"
    },
    "V04602002": {
        "city_code": "V04602002"."city_name": "Lingshui"
    },
    "V04601003": {
        "city_code": "V04601003"."city_name": "Wenchang"
    },
    "V04602003": {
        "city_code": "V04602003"."city_name": "BaoTing"
    },
    "V04600034": {
        "city_code": "V04600034"."city_name": "White"
    },
    "V0460100": {
        "city_code": "V0460100"."city_name": "Haikou"
    },
    "V04602001": {
        "city_code": "V04602001"."city_name": "Ledong"
    },
    "V04601002": {
        "city_code": "V04601002"."city_name": "Qionghai"
    },
    "V04600032": {
        "city_code": "V04600032"."city_name": In the "high"
    },
    "V04600033": {
        "city_code": "V04600033"."city_name": "ChangJiang"
    },
    "V0460200": {
        "city_code": "V0460200"."city_name": "Sanya"
    },
    "V04601008": {
        "city_code": "V04601008"."city_name": "QiongZhong"
    },
    "V0440700": {
        "city_code": "V0440700"."city_name": "Jiangmen"
    },
    "V0441800": {
        "city_code": "V0441800"."city_name": "Qingyuan"
    },
    "V0441201": {
        "city_code": "V0441201"."city_name": "Zhaoqing"
    },
    "V0441900": {
        "city_code": "V0441900"."city_name": "Dongguan"
    },
    "V0441700": {
        "city_code": "V0441700"."city_name": "Yangjiang"
    },
    "V0440510": {
        "city_code": "V0440510"."city_name": "Shantou"
    },
    "V0440800": {
        "city_code": "V0440800"."city_name": "Zhanjiang"
    },
    "V0441500": {
        "city_code": "V0441500"."city_name": "Shanwei"
    },
    "V0440100": {
        "city_code": "V0440100"."city_name": "Guangzhou"
    },
    "V0441401": {
        "city_code": "V0441401"."city_name": "Meizhou"
    },
    "V0440400": {
        "city_code": "V0440400"."city_name": "Zhuhai"
    },
    "V0442000": {
        "city_code": "V0442000"."city_name": "Sun"
    },
    "V0440600": {
        "city_code": "V0440600"."city_name": "Foshan"
    },
    "V0441281": {
        "city_code": "V0441281"."city_name": "Yun fu"
    },
    "V0445201": {
        "city_code": "V0445201"."city_name": Jieyang ""
    },
    "V0441300": {
        "city_code": "V0441300"."city_name": "Huizhou"
    },
    "V0440300": {
        "city_code": "V0440300"."city_name": "Shenzhen"
    },
    "V0445100": {
        "city_code": "V0445100"."city_name": "Chaozhou"
    },
    "V0440201": {
        "city_code": "V0440201"."city_name": "Shaoguan"
    },
    "V0441600": {
        "city_code": "V0441600"."city_name": "Hope"
    },
    "V0440901": {
        "city_code": "V0440901"."city_name": "Maoming"
    },
    "V0453000": {
        "city_code": "V0453000"."city_name": "Congratulation state."
    },
    "V0450500": {
        "city_code": "V0450500"."city_name": "North sea"
    },
    "V0450200": {
        "city_code": "V0450200"."city_name": "Liuzhou"
    },
    "V0452700": {
        "city_code": "V0452700"."city_name": "河池"
    },
    "V0452800": {
        "city_code": "V0452800"."city_name": "Qinzhou"
    },
    "V0453200": {
        "city_code": "V0453200"."city_name": Takashi "left"
    },
    "V0452900": {
        "city_code": "V0452900"."city_name": "Your port"
    },
    "V0453100": {
        "city_code": "V0453100"."city_name": "Guest"
    },
    "V0452500": {
        "city_code": "V0452500"."city_name": "Yulin"
    },
    "V0450300": {
        "city_code": "V0450300"."city_name": "Guilin"
    },
    "V0450100": {
        "city_code": "V0450100"."city_name": "Nanning"
    },
    "V0450400": {
        "city_code": "V0450400"."city_name": "Wuzhou"
    },
    "V0450600": {
        "city_code": "V0450600"."city_name": "Fangchenggang"
    },
    "V0452600": {
        "city_code": "V0452600"."city_name": "White"
    },
    "V0632300": {
        "city_code": "V0632300"."city_name": Huangnan Autonomous Prefecture
    },
    "V0632200": {
        "city_code": "V0632200"."city_name": Haibei Autonomous Prefecture
    },
    "V0632600": {
        "city_code": "V0632600"."city_name": "Goluo Autonomous Prefecture"
    },
    "V0632700": {
        "city_code": "V0632700"."city_name": "Yushu Autonomous Prefecture"
    },
    "V0632801": {
        "city_code": "V0632801"."city_name": golmud
    },
    "V0630100": {
        "city_code": "V0630100"."city_name": "Xining"
    },
    "V0632500": {
        "city_code": "V0632500"."city_name": Hainan Autonomous Prefecture
    },
    "V0632100": {
        "city_code": "V0632100"."city_name": "Haidong Region"
    },
    "V0632800": {
        "city_code": "V0632800"."city_name": "Haixi Autonomous Prefecture"
    },
    "V0420700": {
        "city_code": "V0420700"."city_name": "Ezhou"
    },
    "V0422401": {
        "city_code": "V0422401"."city_name": "Jianghan"
    },
    "V0422800": {
        "city_code": "V0422800"."city_name": "Enshi"
    },
    "V0422100": {
        "city_code": "V0422100"."city_name": "Huanggang"
    },
    "V0422300": {
        "city_code": "V0422300"."city_name": "Xianning"
    },
    "V0420800": {
        "city_code": "V0420800"."city_name": "Culture"
    },
    "V0420500": {
        "city_code": "V0420500"."city_name": "Yichang"
    },
    "V0422600": {
        "city_code": "V0422600"."city_name": "Shiyan"
    },
    "V0420900": {
        "city_code": "V0420900"."city_name": "Xiaogan"
    },
    "V0422400": {
        "city_code": "V0422400"."city_name": "Jing zhou"
    },
    "V0420681": {
        "city_code": "V0420681"."city_name": "Suizhou"
    },
    "V0420600": {
        "city_code": "V0420600"."city_name": "Xiangyang"
    },
    "V0420200": {
        "city_code": "V0420200"."city_name": "Yellowstone"
    },
    "V0420100": {
        "city_code": "V0420100"."city_name": "Wuhan"
    },
    "V0430600": {
        "city_code": "V0430600"."city_name": "Yueyang"
    },
    "V0430800": {
        "city_code": "V0430800"."city_name": "Zhangjiajie"
    },
    "V0430300": {
        "city_code": "V0430300"."city_name": "Xiangtan"
    },
    "V0430200": {
        "city_code": "V0430200"."city_name": "Zhuzhou"
    },
    "V0431000": {
        "city_code": "V0431000"."city_name": "Chenzhou"
    },
    "V0431200": {
        "city_code": "V0431200"."city_name": "Which"
    },
    "V0430100": {
        "city_code": "V0430100"."city_name": "Changsha"
    },
    "V0430700": {
        "city_code": "V0430700"."city_name": "Changde"
    },
    "V0430400": {
        "city_code": "V0430400"."city_name": "Hengyang"
    },
    "V0432500": {
        "city_code": "V0432500"."city_name": "Loudi"
    },
    "V0431100": {
        "city_code": "V0431100"."city_name": "Yongzhou"
    },
    "V0433100": {
        "city_code": "V0433100"."city_name": "Xiangxi Autonomous Prefecture"
    },
    "V0430900": {
        "city_code": "V0430900"."city_name": "Yiyang"
    },
    "V0430500": {
        "city_code": "V0430500"."city_name": "Shaoyang"
    },
    "V0362400": {
        "city_code": "V0362400"."city_name": "Gyan"
    },
    "V0360100": {
        "city_code": "V0360100"."city_name": "Nanchang"
    },
    "V0360500": {
        "city_code": "V0360500"."city_name": "新余"
    },
    "V0362500": {
        "city_code": "V0362500"."city_name": "Fuzhou"
    },
    "V0360600": {
        "city_code": "V0360600"."city_name": "Yingtan"
    },
    "V0360200": {
        "city_code": "V0360200"."city_name": jingdezhen
    },
    "V0360400": {
        "city_code": "V0360400"."city_name": "Jiujiang"
    },
    "V0362100": {
        "city_code": "V0362100"."city_name": "Ganzhou"
    },
    "V0362233": {
        "city_code": "V0362233"."city_name": Shangrao ""
    },
    "V0362200": {
        "city_code": "V0362200"."city_name": "Yichun"
    },
    "V0360300": {
        "city_code": "V0360300"."city_name": "Pingxiang"
    },
    "V0410800": {
        "city_code": "V0410800"."city_name": "Coke"
    },
    "V0412880": {
        "city_code": "V0412880"."city_name": "Jiyuan"
    },
    "V0412901": {
        "city_code": "V0412901"."city_name": "Nanyang"
    },
    "V0410700": {
        "city_code": "V0410700"."city_name": "Xinxiang"
    },
    "V0410600": {
        "city_code": "V0410600"."city_name": "鹤壁"
    },
    "V0411100": {
        "city_code": "V0411100"."city_name": "Luo river"
    },
    "V0410200": {
        "city_code": "V0410200"."city_name": "Kaifeng"
    },
    "V0410100": {
        "city_code": "V0410100"."city_name": "Zhengzhou"
    },
    "V0412801": {
        "city_code": "V0412801"."city_name": "Stationary horse shop"
    },
    "V0411200": {
        "city_code": "V0411200"."city_name": "Sanmenxia"
    },
    "V0410400": {
        "city_code": "V0410400"."city_name": "Mesa"
    },
    "V0411000": {
        "city_code": "V0411000"."city_name": ", taking"
    },
    "V0410900": {
        "city_code": "V0410900"."city_name": "Puyang"
    },
    "V0413000": {
        "city_code": "V0413000"."city_name": "Xinyang"
    },
    "V0410500": {
        "city_code": "V0410500"."city_name": Anyang ""
    },
    "V0412800": {
        "city_code": "V0412800"."city_name": "Jiyuan"
    },
    "V0412700": {
        "city_code": "V0412700"."city_name": "Zhoukou"
    },
    "V0410300": {
        "city_code": "V0410300"."city_name": "Luoyang"
    },
    "V0412300": {
        "city_code": "V0412300"."city_name": "Shangqiu"
    },
    "V0540100": {
        "city_code": "V0540100"."city_name": "Lhasa"
    },
    "V0542100": {
        "city_code": "V0542100"."city_name": "Prosperous"
    },
    "V0542300": {
        "city_code": "V0542300"."city_name": "Shigatse"
    },
    "V0542500": {
        "city_code": "V0542500"."city_name": "Ali"
    },
    "V0542600": {
        "city_code": "V0542600"."city_name": "Lin zhi"
    },
    "V0542200": {
        "city_code": "V0542200"."city_name": "South"
    },
    "V0542400": {
        "city_code": "V0542400"."city_name": "Who"
    },
    "V0511000": {
        "city_code": "V0511000"."city_name": "Parts"
    },
    "V0510600": {
        "city_code": "V0510600"."city_name": Deyang ""
    },
    "V0513700": {
        "city_code": "V0513700"."city_name": "The brazil-china chamber"
    },
    "V0513800": {
        "city_code": "V0513800"."city_name": "Meishan"
    },
    "V0510500": {
        "city_code": "V0510500"."city_name": "Luzhou"
    },
    "V0510800": {
        "city_code": "V0510800"."city_name": "Guangyuan"
    },
    "V0512500": {
        "city_code": "V0512500"."city_name": "Yibin"
    },
    "V0513200": {
        "city_code": "V0513200"."city_name": "Aba Autonomous Prefecture"
    },
    "V0513000": {
        "city_code": "V0513000"."city_name": "Florida"
    },
    "V0511300": {
        "city_code": "V0511300"."city_name": "Nanchong"
    },
    "V0510900": {
        "city_code": "V0510900"."city_name": "Suining"
    },
    "V0510300": {
        "city_code": "V0510300"."city_name": "The city"
    },
    "V0513900": {
        "city_code": "V0513900"."city_name": "Great"
    },
    "V0513100": {
        "city_code": "V0513100"."city_name": "雅安"
    },
    "V0510400": {
        "city_code": "V0510400"."city_name": "Panzhihua"
    },
    "V0513400": {
        "city_code": "V0513400"."city_name": "Liangshan Autonomous Prefecture"
    },
    "V0510100": {
        "city_code": "V0510100"."city_name": "Chengdu"
    },
    "V0511100": {
        "city_code": "V0511100"."city_name": "Leshan"
    },
    "V0513300": {
        "city_code": "V0513300"."city_name": "Ganzi Autonomous Prefecture"
    },
    "V0513600": {
        "city_code": "V0513600"."city_name": "Waste"
    },
    "V0510700": {
        "city_code": "V0510700"."city_name": "City"
    },
    "V0500000": {
        "city_code": "V0500000"."city_name": "Chongqing"
    },
    "V0610100": {
        "city_code": "V0610100"."city_name": "Xi 'an"
    },
    "V0610200": {
        "city_code": "V0610200"."city_name": "Tongchuan"
    },
    "V0612501": {
        "city_code": "V0612501"."city_name": "Practical"
    },
    "V0610400": {
        "city_code": "V0610400"."city_name": "Xianyang"
    },
    "V0612101": {
        "city_code": "V0612101"."city_name": "Weinan"
    },
    "V0610300": {
        "city_code": "V0610300"."city_name": "Baoji"
    },
    "V0612401": {
        "city_code": "V0612401"."city_name": "Well-being"
    },
    "V0612301": {
        "city_code": "V0612301"."city_name": Hanzhong city ""
    },
    "V0612701": {
        "city_code": "V0612701"."city_name": "Yulin"
    },
    "V0612601": {
        "city_code": "V0612601"."city_name": "Yan"
    },
    "V0522200": {
        "city_code": "V0522200"."city_name": Tongren ""
    },
    "V0520200": {
        "city_code": "V0520200"."city_name": "Liupanshui"
    },
    "V0522500": {
        "city_code": "V0522500"."city_name": "Anshun"
    },
    "V0522100": {
        "city_code": "V0522100"."city_name": "Zunyi"
    },
    "V0523100": {
        "city_code": "V0523100"."city_name": Qiandongnan Prefecture
    },
    "V0520100": {
        "city_code": "V0520100"."city_name": "Guiyang"
    },
    "V0522400": {
        "city_code": "V0522400"."city_name": "Order"
    },
    "V0522900": {
        "city_code": "V0522900"."city_name": Qianxinan Prefecture
    },
    "V0523200": {
        "city_code": "V0523200"."city_name": "Qiannan Prefecture"
    },
    "V0532900": {
        "city_code": "V0532900"."city_name": "Dali"
    },
    "V0533300": {
        "city_code": "V0533300"."city_name": "怒江"
    },
    "V0533600": {
        "city_code": "V0533600"."city_name": "普洱"
    },
    "V0532600": {
        "city_code": "V0532600"."city_name": "Wenshan"
    },
    "V0530100": {
        "city_code": "V0530100"."city_name": "Kunming"
    },
    "V0532800": {
        "city_code": "V0532800"."city_name": "Xishuangbanna"
    },
    "V0532300": {
        "city_code": "V0532300"."city_name": "Chuxiong"
    },
    "V0533500": {
        "city_code": "V0533500"."city_name": "Lincang"
    },
    "V0533100": {
        "city_code": "V0533100"."city_name": "Dehong"
    },
    "V0532400": {
        "city_code": "V0532400"."city_name": "Yuxi"
    },
    "V0532200": {
        "city_code": "V0532200"."city_name": "Qujing"
    },
    "V0532100": {
        "city_code": "V0532100"."city_name": "Zhaotong"
    },
    "V0533000": {
        "city_code": "V0533000"."city_name": "Baoshan"
    },
    "V0533400": {
        "city_code": "V0533400"."city_name": "The diqing"
    },
    "V0532500": {
        "city_code": "V0532500"."city_name": "Red river"
    },
    "V0533200": {
        "city_code": "V0533200"."city_name": "Lijiang"
    },
    "V0622600": {
        "city_code": "V0622600"."city_name": "Longnan"
    },
    "V0623000": {
        "city_code": "V0623000"."city_name": "Gannan"
    },
    "V0620400": {
        "city_code": "V0620400"."city_name": "Silver"
    },
    "V0620200": {
        "city_code": "V0620200"."city_name": Jiayuguan pass
    },
    "V0620500": {
        "city_code": "V0620500"."city_name": "Tianshui"
    },
    "V0620100": {
        "city_code": "V0620100"."city_name": "Lanzhou"
    },
    "V0622901": {
        "city_code": "V0622901"."city_name": "Linxia"
    },
    "V0622100": {
        "city_code": "V0622100"."city_name": "Jiuquan"
    },
    "V0622400": {
        "city_code": "V0622400"."city_name": "Sharp"
    },
    "V0622800": {
        "city_code": "V0622800"."city_name": "Qingyang"
    },
    "V0622201": {
        "city_code": "V0622201"."city_name": "Zhang ye"
    },
    "V0622300": {
        "city_code": "V0622300"."city_name": "Wuwei"
    },
    "V0620300": {
        "city_code": "V0620300"."city_name": "Jinchang"
    },
    "V0622700": {
        "city_code": "V0622700"."city_name": "Out"
    },
    "V0640200": {
        "city_code": "V0640200"."city_name": "Shizuishan"
    },
    "V0640100": {
        "city_code": "V0640100"."city_name": "Yinchuan"
    },
    "V0642300": {
        "city_code": "V0642300"."city_name": "Central"
    },
    "V0642100": {
        "city_code": "V0642100"."city_name": "Hui"
    },
    "V0642200": {
        "city_code": "V0642200"."city_name": "Evalution"
    },
    "V0650100": {
        "city_code": "V0650100"."city_name": "Urumchi"
    },
    "V0654201": {
        "city_code": "V0654201"."city_name": "Into"
    },
    "V0650500": {
        "city_code": "V0650500"."city_name": "6"
    },
    "V0653201": {
        "city_code": "V0653201"."city_name": "And"
    },
    "V0650200": {
        "city_code": "V0650200"."city_name": "Karamay"
    },
    "V0653101": {
        "city_code": "V0653101"."city_name": "Kashgar"
    },
    "V0654001": {
        "city_code": "V0654001"."city_name": "Kuytun"
    },
    "V0650600": {
        "city_code": "V0650600"."city_name": "State"
    },
    "V0652201": {
        "city_code": "V0652201"."city_name": "Hami"
    },
    "V0652901": {
        "city_code": "V0652901"."city_name": aksu
    },
    "V0650400": {
        "city_code": "V0650400"."city_name": "Yili"
    },
    "V0652101": {
        "city_code": "V0652101"."city_name": "Turpan"
    },
    "V0652301": {
        "city_code": "V0652301"."city_name": "Changji"
    },
    "V0650300": {
        "city_code": "V0650300"."city_name": "BoZhou"
    },
    "V0659001": {
        "city_code": "V0659001"."city_name": "Shihezi"
    },
    "V0654301": {
        "city_code": "V0654301"."city_name": altay
    },
    "V0220300": {
        "city_code": "V0220300"."city_name": "Siping"
    },
    "V0220400": {
        "city_code": "V0220400"."city_name": "Long-withering"
    },
    "V0220600": {
        "city_code": "V0220600"."city_name": "White"
    },
    "V0220700": {
        "city_code": "V0220700"."city_name": "Matsubara"
    },
    "V0220200": {
        "city_code": "V0220200"."city_name": "Jilin"
    },
    "V0220800": {
        "city_code": "V0220800"."city_name": "Baicheng"
    },
    "V0220100": {
        "city_code": "V0220100"."city_name": "Changchun"
    },
    "V0222400": {
        "city_code": "V0222400"."city_name": "Yanbian"
    },
    "V0220500": {
        "city_code": "V0220500"."city_name": "Tonghua"
    },
    "V0211000": {
        "city_code": "V0211000"."city_name": "Liaoyang"
    },
    "V0210800": {
        "city_code": "V0210800"."city_name": Yingkou ""
    },
    "V0211100": {
        "city_code": "V0211100"."city_name": "File"
    },
    "V0210600": {
        "city_code": "V0210600"."city_name": "丹东"
    },
    "V0210900": {
        "city_code": "V0210900"."city_name": "Fuxin"
    },
    "V0210400": {
        "city_code": "V0210400"."city_name": "Fushun"
    },
    "V0210500": {
        "city_code": "V0210500"."city_name": "Benxi"
    },
    "V0211400": {
        "city_code": "V0211400"."city_name": hulusao
    },
    "V0211300": {
        "city_code": "V0211300"."city_name": "Sun"
    },
    "V0210700": {
        "city_code": "V0210700"."city_name": "Jinzhou"
    },
    "V0210200": {
        "city_code": "V0210200"."city_name": "Dalian"
    },
    "V0210100": {
        "city_code": "V0210100"."city_name": "Shenyang"
    },
    "V0211200": {
        "city_code": "V0211200"."city_name": Tieling ""
    },
    "V0210300": {
        "city_code": "V0210300"."city_name": "Anshan"
    },
    "V0230100": {
        "city_code": "V0230100"."city_name": "Harbin"
    },
    "V0232700": {
        "city_code": "V0232700"."city_name": "Greater Khingan Mountains"
    },
    "V0230800": {
        "city_code": "V0230800"."city_name": jiamusi
    },
    "V0230300": {
        "city_code": "V0230300"."city_name": "Jixi"
    },
    "V0230700": {
        "city_code": "V0230700"."city_name": "Yichun"
    },
    "V0230200": {
        "city_code": "V0230200"."city_name": qiqihar
    },
    "V0230500": {
        "city_code": "V0230500"."city_name": "Double Yashan"
    },
    "V0232300": {
        "city_code": "V0232300"."city_name": "That is suihua"
    },
    "V0230400": {
        "city_code": "V0230400"."city_name": Hegang ""
    },
    "V0230600": {
        "city_code": "V0230600"."city_name": "Daqing"
    },
    "V0231000": {
        "city_code": "V0231000"."city_name": "Mudanjiang"
    },
    "V0231100": {
        "city_code": "V0231100"."city_name": "The river"
    },
    "V0230900": {
        "city_code": "V0230900"."city_name": "Qitai River"
    },
    "V0131100": {
        "city_code": "V0131100"."city_name": "Male" Ann}}import requests

cookies = {
    'Hm_lvt_2f00d4ce9214f568b3bcde5567eff1bf': '1646287559'.'XSRF-TOKEN': 'eyJpdiI6IklIUTlFXC9maUg5ckxzOTlsSjRzSENnPT0iLCJ2YWx1ZSI6ImRIRktyczZJNkt6RmRhVUVNVHpJQWtiU0hTRHNpM2NQcW1JVysyOHlYbTNBK29 xVVlUTWsyMTZmN2VXVnhFbW8iLCJtYWMiOiIyNDUzNGJiNTYwNGQwMGQ1ODI3NTQ2NzJkMDRjZjAzMTkwZWM5OGVjODBhNWNhZjY2MzZlZWIwY2IwM2M5ZGN mIn0%3D'.'unicomdata_session': 'eyJpdiI6ImRINEZON09ncjF6aWEzYUUxVmJ0TlE9PSIsInZhbHVlIjoiMXA1YmJ0SExUZFBXKzZ1SDNLbldDcXRMRXY5b3Z2ekVoMHJzOEprOVwvaFZPRk1 TRHZjZ3hSbUE1WTBrQTdQb0EiLCJtYWMiOiI5MTljN2VkMzViNGFkZTczZmZmMzI2YzM4OTRkMjNkYmM1MzBkY2RiMTE1MjVlY2U1ZWQ4ZjdjOTBmZmM5NWU 4In0%3D'.'Hm_lpvt_2f00d4ce9214f568b3bcde5567eff1bf': '1646290041',
}

headers = {
    'Connection': 'keep-alive'.'Accept': 'application/json, text/plain, */*'.'User-Agent': 'the Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'.'X-XSRF-TOKEN': 'eyJpdiI6IklIUTlFXC9maUg5ckxzOTlsSjRzSENnPT0iLCJ2YWx1ZSI6ImRIRktyczZJNkt6RmRhVUVNVHpJQWtiU0hTRHNpM2NQcW1JVysyOHlYbTNBK29 xVVlUTWsyMTZmN2VXVnhFbW8iLCJtYWMiOiIyNDUzNGJiNTYwNGQwMGQ1ODI3NTQ2NzJkMDRjZjAzMTkwZWM5OGVjODBhNWNhZjY2MzZlZWIwY2IwM2M5ZGN mIn0='.'Sec-Fetch-Site': 'same-origin'.'Sec-Fetch-Mode': 'cors'.'Sec-Fetch-Dest': 'empty'.'Referer': 'https://unicom_trip.133.cn/city/?system=cjfcts'.'Accept-Language': 'zh-CN,zh; Q = 0.9 ',
}

params = (
    ('date'.'20200302'),
    ('type'.'arr'),
)

response = requests.get('https://unicom_trip.133.cn/api/v1/city/flight-route/LXA', headers=headers, params=params, cookies=cookies)
# info_str = response.text
info_str = "eyJpdiI6ImxhTk5MUkZQc0lwQlh2QUN3ZUl0aXc9PSIsInZhbHVlIjoiRTMxZW9cL29iNU1ZWkpmdWVFSks3bFdoUFVcL1RIQmorZEdrK3lCZ1JJN3o5SFR WMmRJZkN2MjdocUZ4aUhEeXdsckdjXC9COFZJS2hJZ0tXUHQ5T2NMdnNxK2FuS3JjQjhHRlc2SVZOd3BiOElqSmJPb0RtZDhCRXFoQ2lWMFdTbFphY1hmUWV meXJGWmU4R3cxOUxcL1BkeXFRVll5RDQ0cXI0V3BtSUpzZWRISVhvNjhGQVU5UzE2S3lFNWJjTnlxaXBcLzZsTWo1TzIyMnVFNWQrODVleUVlR1piV2RScnZ DZHdGMllUNHVqeCtoYlFOQ2kzN2xJeTNjM3N5RkJNWFMwWit4S3hiV0VEYnRuV2NOeXhIYlwvSW5ZR01kaW5EcXpTQTc5azJUWFJCQnloQ1wvTWpYQnpqV0R 4QkhsMUpyS0hqN2Jad2RSZWtFYnVxM2swMWtoSEhIUlNLbm1wS2U5VFVKZ2NBd2VKNExHUHpEeG4wVXhaQktMV0wxXC9pZXhVNm1FSE9jSTBsdE01eG1cL1F FcjBrUVFDMjBMQVhZS09FREZ0QUdnSVBETGtcL2FObFwveERyVStMa2k3Um5QN0lcL1lGZFpWSll0b21lamJwN09YMWRtRFY0TTFsYm1Ib01SUUdRUFJXMzl xbWRMRzQ5K2tNXC9uUU5ocEpUdDFkaWhCNjZibnMrbko1OW9aVTZKeDk0MFZiRTRCUUVvdHBIaE5aMWhsamhvcjZLRmtkNmVLeHhJYTJZQjZEbk5xRGdjMk1 3a3M5VXdYRFR0a3JiNDFGUjhyNlFvXC9HaldMZ1FjK1loQzV3a0pMRWxpYjFESThtVXBBT0FuXC9wVWJjbnJiMElFR01yXC9tQW9yVFVvM1A4MkRsTHFnOGp SQ2NlRVo2ZWlvREFJUWx6XC9hUWp4djlrcXZaRW9LbW8rNnN2WTBmZGFXTGp1TmRHYTJDUnMrVUwrcUFLTEs1TEx5WkhTWWpMTHlaN05qY2Zrd1k3NFRhQjc 5Y1VHWnVSOGtcL0Vkamx1VEJzaHBcL2pLV3AxdHZoTlpBMnVFYVp2S1RMNDZ5SDNRVFwvekZHU081TWRaeVdKR1AyaDhCbVpFcGExNk1kak5oMnI3NzB3aU8 4ODhGcmoreU1aejFFclpTSk8zditKazdqMFlLSmJJQmF6K2ZQajFOWnoyOXJXMG1RektSY3U5elgzQjdmVDk2RzNReUtJQ2JFam9GbjlSS2JhM2NWTG4xYUp wOFNEZ1hvbTZsM20ybjNHamc2XC83R2NuRXhvT0dURTFubENzK1dMYlNRS0JDZ0VjY2c5cm9GY1VYaTlLUTY0M0tLNFwvWFFhVW9RdUFEdFhuaENVRTlhWkl DNHZqbXBKNkVmSVRuK3lmdFlrSHlma3RpZXNBZFF5c3hMNTNpcjhrQTdFa3V0aGVqRjZpTWtQdGVhV0VMMkRwTGpYUmFFWldyUnpmRyszYXZqTlwvQnQ4N01 iYVJLSFM4eTNiN0Q3TWlGU2owRmtBV1wvVHdDNFdsbmJWRFM3bDQzcCtzRFVNMFZ3Nmtzd3FydSswK05cLzJpK09USzByZXFvVXpVeHpkQUVkc2FBNnJiUTM 4SXh4aWhGQk1NMGplXC9YeXowM2NwOHBaQmgyNEgraWliVXZmRFA5TTkwUDlWYVhLNVpzSlVxSWtEaVwva0N5bm9tOUJxV0pQREU2VzdMYkJSQXFIUW1DTFw vQk5LS2ZSNFwveXVxWTZBWmQ2K2RrNEhkYVp2VXFSVlZSZ3d2QXdGbzgxYjkyK0VkZ2VqU3NzTHgxUWcyS0djZHdGdzVvalc5bFFWYjl4dmhqdlExdUlqbVJ IcjNwNGRDekR6T2x6Q1VRTnVUK1NnRXcwNjFUd3pPc1pcL3pZZzhpU1grVDhZZnprNFFxSWtaaExBenNBSHY3S1RjUjZcL2V2Rk5jMlpEV1wvaEY0dz0iLCJ tYWMiOiJjMTgzOGI4YzFlYzJhZGQ5YTdhNzFhODVmN2NlMWE1ZDY4YWNjYmJkYThiMGE1MzEzYzM2YzM2MjdhODYxNWFjIn0="
import execjs
with open("test.js"."r") as f:
    js_str = f.read()
a = execjs.compile(js_str).call("dataDecode",info_str)

for data in a["data"] :print("City is: {}, ridership is: {}".format(city_list[data["source_city"]] ["city_name"],data["user_percent"]))
Copy the code

The resulting data are as follows

The city is: Shannan, the passenger rate is:25.2661% City: Xigaze, passenger rate:15.2754% City: Chengdu, passenger rate:12.2876% city is: Naqu, passenger rate is:11.1485% City: Qamdo, passenger rate:11.0924% City: Nyingchi, passenger rate:10.7003% City: Xi 'an, passenger rate:2.4463% City: Chongqing, passenger rate:2.2782% City: Diqing, passenger rate:1.5313% City: Meishan, passenger rate:0.915% City: Kunming, passenger rate:0.915% City: Mianyang, passenger rate:0.8777% City: Deyang, passenger rate:0.7096% City: Zigong, passenger rate:0.6723% City: Beijing, passenger rate:0.6349% City: Xianyang, passenger rate:0.5789% City: Hangzhou, passenger rate:0.4855% City: Yibin, passenger rate:0.2241% City: Lijiang, passenger rate:0.2241% City: Dali, passenger rate:0.1867%
Copy the code

Deciphering the complete