diff --git a/news4.html b/news4.html deleted file mode 100644 index f7f8690..0000000 --- a/news4.html +++ /dev/null @@ -1,854 +0,0 @@ - - - - - - - - RLX News - - - - - -
- - -
- -
- - - -
-
-
- - - diff --git a/test.py b/test.py deleted file mode 100644 index 56ca3ff..0000000 --- a/test.py +++ /dev/null @@ -1,438 +0,0 @@ -import requests -import json - -# 1. Create a session object -session = requests.Session() - -# 2. Set the User-Agent for the session -user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36" -session.headers.update({'User-Agent': user_agent}) - -# 3. Define and add cookies to the session -cookies_to_add = [ - ("SID", "g.a000vwi83sZx47d1q9Po8BgPR3jBX7lpsrzWSuPIKyp6RycUEctVzyy0oo1gNvQbwZa53AWllwACgYKAVQSARMSFQHGX2MiUpZ3JZlRTzUS5L-5fPmgpBoVAUF8yKprZzPlNM_X83070Ct35bq_0076", "/", ".google.com"), - ("__Secure-1PSID", "g.a000vwi83sZx47d1q9Po8BgPR3jBX7lpsrzWSuPIKyp6RycUEctVKNqZm8qWU9ZC2DlRVPn0igACgYKAfQSARMSFQHGX2MiYGW66m_L_p1vlqiuEg-IrxoVAUF8yKrgRbA9tcA4VinZix0qlexX0076", "/", ".google.com"), - ("__Secure-3PSID", "g.a000vwi83sZx47d1q9Po8BgPR3jBX7lpsrzWSuPIKyp6RycUEctVnGF-cJAl9Wr1rJ-NOCW63wACgYKAZASARMSFQHGX2Mi1gYcRRnI8v2AdvofwvFG5BoVAUF8yKooSw-opCZ1-vxmkQXCB7330076", "/", ".google.com"), - ("HSID", "AJifEcy5MKbQSoqIz", "/", ".google.com"), - ("SSID", "AB87p4RIXK_USto4D", "/", ".google.com"), - ("APISID", "fQw9oTJbNnptFKdr/AIXxJuvoAk3qrIeWi", "/", ".google.com"), - ("SAPISID", "3zFHAXrGoL_XNe0X/A7AafTXBL2NRj7N2h", "/", ".google.com"), - ("__Secure-1PAPISID", "3zFHAXrGoL_XNe0X/A7AafTXBL2NRj7N2h", "/", ".google.com"), - ("__Secure-3PAPISID", "3zFHAXrGoL_XNe0X/A7AafTXBL2NRj7N2h", "/", ".google.com"), - ("AEC", "AVcja2e2MbzHDDL2yqJDMgUeDL-S3BEFB_yK293aRhQwshqv22Bd7IQ9mvg", "/", ".google.com"), - ("NID", "523=SVwTZRVo9GJ5sSI0guSXNWwegQ7YY0h597wyCkrqkuIRMnQqpH3qrPA0SGB77KF69ibosOMUd-VNbNg1R7TXjPYFxYTUTP0uLtg41CaQctv6j1NKBaVPJoUkK3wzQ1e3l5yGsfBwGtypz5vxHP6yeyRtVWmYSiDiHr7AN1dKYXwzVVi7Dp8bvtppEAwUX7dQCqQ-4qGlHcoMW44STYwNELgd6CVXWPIhypl4qx_Wwcv7sY3GGP04s2kb0ljX7rYXKagj_Uv3xJDujDa4XUTAJKficyiWOrZT5LpeewUp1Kt5RyEBH2U7IHocmsWC6lfAKsoIt21wc1QwYioj9XkIIasJ4tCu1F7yXHjrglyGwbe5i67stMHI2FL3KXdoxe3ly_MORZWlVNM1Co7W43Rab01HMj2Ad940eXU9aV1PVzwlTtqiF0R0gLO_ubD6kykDRVMVMdMjMapz_dgIUfbkGMluSVykNRKnO7yf_rS7DKjXZXsh18UEsLcz6WjKtEYgmvm51MdH2JN5dcElSK_SWxrejJl-UW_eT_EqUQaeCtK2N7dTMFT38PGAkZFEKCvMqpjU86iLbFbmq_lKT-dm6IjIxFXj8yv652EYoCBlS3MsTjaQWP4_yRJa3oWhnB1kgwiBgBVmidRShZOT09L77WL6jVKE6YE09QrjGnoH_RjZFTwwGiuSFCLKfz9SwVsJBNV-nn5nZrU40kWmlhnfBNY3Kphq0fwO9RQ6wvzMAGzz684-kxzePSX3CgA74-rppEZrkXFMFjSaZGE-D7NAQp1qD2ez0-H2n0OXbRaLDN7JXn9fqhZu_FwvHJGfTBPZOZnk7taSnZSipmFU8gsTRQSVdFX6SlCXGpKueSRjhho", "/", ".google.com"), - ("S", "maestro=IUwVdLn0rPZ27SY26uYPEonS9u1J9oQi8YzVJpqIc-w", "/", ".google.com"), - ("__Secure-1PSIDTS", "sidts-CjIB7pHptaI1HakO1xLmYgvHilIKZJuufs1na9HjqCHJL13_z6LJNW13liGWofxE3NQ-NxAA", "/", ".google.com"), - ("__Secure-3PSIDTS", "sidts-CjIB7pHptaI1HakO1xLmYgvHilIKZJuufs1na9HjqCHJL13_z6LJNW13liGWofxE3NQ-NxAA", "/", ".google.com"), - ("_gid", "GA1.3.1639311329.1744393279", "/", ".lookerstudio.google.com"), # Different domain - ("_ga", "GA1.1.1275703331.1743917675", "/", ".lookerstudio.google.com"), # Different domain - ("_ga_LPCKLD3Z7X", "GS1.1.1744393286.6.0.1744393286.0.0.0", "/", ".lookerstudio.google.com"), # Different domain - ("RAP_XSRF_TOKEN", "AImk1AJGP3sIKZ7N5-RA2jKHcJ0jdpxGKw:1744393288187", "/", "lookerstudio.google.com"), # Different domain (no leading dot) - ("_gat", "1", "/", ".lookerstudio.google.com"), # Different domain - ("SIDCC", "AKEyXzW9xrpFKS4Ox9-THfQ3DfB62JRx-bxxg0ZEiKYze2jaerhvWrVMFVCyjTjxIJfOhCOKQw4", "/", ".google.com"), - ("__Secure-1PSIDCC", "AKEyXzXdMIev0GvM5xA0kMifj4jnuGZYNiob-2fJssX_jTBlwE8M4Bm9edS4J_i7UTSMFFEbCIm_", "/", ".google.com"), - ("__Secure-3PSIDCC", "AKEyXzU8YysnVlR_9UcCx2GFo5hIUNPh6OqSCRE6Fpo9y12BNmobniOBCjTZc1_qHTS6VnivWX25", "/", ".google.com"), - ("_ga_S4FJY0X3VX", "GS1.1.1744393279.7.1.1744393369.0.0.0", "/", ".lookerstudio.google.com") # Different domain -] - -for name, value, path, domain in cookies_to_add: - session.cookies.set(name=name, value=value, path=path, domain=domain) - -# 4. Define the Target URL -url = "https://lookerstudio.google.com/batchedDataV2?appVersion=20250324_0406" - -# 5. Define Headers (User-Agent and Cookies are handled by the session) -headers = { - "authority": "lookerstudio.google.com", - "accept": "application/json, text/plain, */*", - "accept-encoding": "gzip, deflate, br, zstd", # requests usually handles this, but specifying can be safer - "accept-language": "en-US,en;q=0.9", - "cache-control": "no-cache", - # "encoding": "null", # This header seems unusual/invalid for requests, omitting - "origin": "https://lookerstudio.google.com", - "pragma": "no-cache", - "priority": "u=1, i", - "referer": "https://lookerstudio.google.com/reporting/1413fcfb-1416-4e56-8967-55f8e9f30ec8/page/p_pbm4eo88qc", - "sec-ch-ua": '"Google Chrome";v="135", "Not-A.Brand";v="8", "Chromium";v="135"', - "sec-ch-ua-mobile": "?0", - "sec-ch-ua-platform": '"Windows"', - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-origin", - "x-client-data": "CIS2yQEIorbJAQipncoBCMHbygEIk6HLAQiFoM0BCP6lzgEIvdXOAQjJ4M4BCIbizgEIu+fOAQjS6M4BCKzpzgE=", - "x-rap-xsrf-token": "AImk1AJGP3sIKZ7N5-RA2jKHcJ0jdpxGKw:1744393288187", - # Content-Type will be set automatically by requests when using json=payload -} - -# 6. Define the JSON Body (Payload) -# Use triple quotes for the multi-line string and parse it with json.loads -body_string = """ -{ - "dataRequest": [ - { - "requestContext": { - "reportContext": { - "reportId": "1413fcfb-1416-4e56-8967-55f8e9f30ec8", - "pageId": "p_pbm4eo88qc", - "mode": 1, - "componentId": "cd-rdkny9a9qc", - "displayType": "simple-table", - "actionId": "crossFilters" - }, - "requestMode": 0 - }, - "datasetSpec": { - "dataset": [ - { - "datasourceId": "c2fc8cdd-46bb-454c-bf09-90ebfd4067d7", - "revisionNumber": 0, - "parameterOverrides": [] - } - ], - "queryFields": [ - { - "name": "qt_3nwfu9yq1c", - "datasetNs": "d0", - "tableNs": "t0", - "resultTransformation": { - "analyticalFunction": 0, - "isRelativeToBase": false - }, - "dataTransformation": { - "sourceFieldName": "_Event_Id_" - } - }, - { - "name": "qt_8yjok4izsc", - "datasetNs": "d0", - "tableNs": "t0", - "resultTransformation": { - "analyticalFunction": 0, - "isRelativeToBase": false - }, - "dataTransformation": { - "sourceFieldName": "_DateTime_EST_" - } - }, - { - "name": "qt_sfkc163arc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_KYTC_Type_" - } - }, - { - "name": "qt_4e66idhbrc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_Incident_Source_" - } - }, - { - "name": "qt_re76qrqe2c", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_District_", - "aggregation": 0 - } - }, - { - "name": "qt_tfkc163arc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_County_Name_" - } - }, - { - "name": "qt_ufkc163arc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_Route_Label_" - } - }, - { - "name": "qt_vfkc163arc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_BMP_Initial_" - } - }, - { - "name": "qt_o7kc163arc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_EMP_Initial_" - } - }, - { - "name": "qt_p7kc163arc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_Description_" - } - } - ], - "sortData": [ - { - "sortColumn": { - "name": "qt_8yjok4izsc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_DateTime_EST_" - } - }, - "sortDir": 1 - } - ], - "includeRowsCount": true, - "relatedDimensionMask": { - "addDisplay": false, - "addUniqueId": false, - "addLatLong": false - }, - "paginateInfo": { - "startRow": 1, - "rowsCount": 50 - }, - "dsFilterOverrides": [], - "filters": [ - { - "filterDefinition": { - "filterExpression": { - "include": false, - "conceptType": 0, - "concept": { - "ns": "t0", - "name": "qt_exs3vib9qc" - }, - "filterConditionType": "PT", - "stringValues": [ - "Shoulder" - ], - "numberValues": [], - "queryTimeTransformation": { - "dataTransformation": { - "sourceFieldName": "_Source_Type_" - } - } - } - }, - "dataSubsetNs": { - "datasetNs": "d0", - "tableNs": "t0", - "contextNs": "c0" - }, - "version": 3 - }, - { - "filterDefinition": { - "filterExpression": { - "include": true, - "conceptType": 0, - "concept": { - "name": "qt_kjyfx83arc", - "ns": "t0" - }, - "queryTimeTransformation": { - "dataTransformation": { - "sourceFieldName": "_County_Name_" - } - }, - "filterConditionType": "IN", - "stringValues": [ - "Boyd", - "Carter", - "Greenup" - ] - } - }, - "dataSubsetNs": { - "datasetNs": "d0", - "tableNs": "t0", - "contextNs": "c0" - }, - "version": 3, - "isCanvasFilter": true - } - ], - "features": [], - "dateRanges": [], - "contextNsCount": 1, - "calculatedField": [], - "needGeocoding": false, - "geoFieldMask": [], - "multipleGeocodeFields": [], - "timezone": "America/New_York" - }, - "role": "main", - "retryHints": { - "useClientControlledRetry": true, - "isLastRetry": false, - "retryCount": 0, - "originalRequestId": "cd-rdkny9a9qc_0_0" - } - }, - { - "requestContext": { - "reportContext": { - "reportId": "1413fcfb-1416-4e56-8967-55f8e9f30ec8", - "pageId": "p_pbm4eo88qc", - "mode": 1, - "componentId": "cd-hgodhfhbrc", - "displayType": "dimension-filter", - "actionId": "crossFilters" - }, - "requestMode": 7 - }, - "datasetSpec": { - "dataset": [ - { - "datasourceId": "c2fc8cdd-46bb-454c-bf09-90ebfd4067d7", - "revisionNumber": 0, - "parameterOverrides": [] - } - ], - "queryFields": [ - { - "name": "qt_vwmdhfhbrc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_Incident_Source_" - } - }, - { - "name": "qt_d5jjfyu6wc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "datastudio_record_count_system_field_id_98323387" - } - } - ], - "sortData": [ - { - "sortColumn": { - "name": "qt_vwmdhfhbrc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_Incident_Source_" - } - }, - "sortDir": 0 - } - ], - "includeRowsCount": true, - "relatedDimensionMask": { - "addDisplay": false, - "addUniqueId": false, - "addLatLong": false - }, - "paginateInfo": { - "startRow": 1, - "rowsCount": 5001 - }, - "dsFilterOverrides": [], - "filters": [ - { - "filterDefinition": { - "filterExpression": { - "include": true, - "conceptType": 0, - "concept": { - "name": "qt_kjyfx83arc", - "ns": "t0" - }, - "queryTimeTransformation": { - "dataTransformation": { - "sourceFieldName": "_County_Name_" - } - }, - "filterConditionType": "IN", - "stringValues": [ - "Boyd", - "Carter", - "Greenup" - ] - } - }, - "dataSubsetNs": { - "datasetNs": "d0", - "tableNs": "t0", - "contextNs": "c0" - }, - "version": 3, - "isCanvasFilter": true - } - ], - "features": [], - "dateRanges": [], - "contextNsCount": 1, - "dateRangeDimensions": [ - { - "name": "qt_ilkdhfhbrc", - "datasetNs": "d0", - "tableNs": "t0", - "dataTransformation": { - "sourceFieldName": "_Incident_Begin_Time_", - "transformationConfig": { - "transformationType": 5 - } - } - } - ], - "calculatedField": [], - "needGeocoding": false, - "geoFieldMask": [], - "multipleGeocodeFields": [], - "timezone": "America/New_York" - }, - "role": "main", - "retryHints": { - "useClientControlledRetry": true, - "isLastRetry": false, - "retryCount": 0, - "originalRequestId": "cd-hgodhfhbrc_0_0" - } - } - ] -} -""" -payload = json.loads(body_string) - -# 7. Send the POST request using the session -try: - print(f"Sending POST request to {url}...") - response = session.post(url, headers=headers, json=payload) - - # Raise an exception for bad status codes (4xx or 5xx) - response.raise_for_status() - - # 8. Process the response - print(f"Status Code: {response.status_code}") - - # Attempt to print the response as JSON, fall back to text if decoding fails - try: - print(response.text) - print("Response JSON:") - # Use json.dumps for pretty printing the received JSON - print(json.dumps(response.json(), indent=2)) - except json.JSONDecodeError: - print("Response Text (non-JSON):") - print(response.text) - -except requests.exceptions.RequestException as e: - print(f"An error occurred during the request: {e}") - if hasattr(e, 'response') and e.response is not None: - print(f"Response status code: {e.response.status_code}") - print(f"Response text: {e.response.text}") \ No newline at end of file