yf_yzl 2 éve
szülő
commit
402f06c7dd
1 módosított fájl, 21 hozzáadás és 12 törlés
  1. 21 12
      crond_script/crond_weather.py

+ 21 - 12
crond_script/crond_weather.py

@@ -77,17 +77,16 @@ def init_data():
     
 
 def main():
-
+    headers = {
+        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299',
+        'Accept-Language': 'en-US,en;q=0.8',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Connection': 'keep-alive',
+    }
     day_data = DayData.objects.filter(id__gte=904)
     for day_obj in day_data:
         logging.warning(day_obj.cityid)
         today_url = f"http://v0.yiketianqi.com/api?unescape=1&version=v62&appid=69334222&appsecret=2ME6U58N&cityid={day_obj.cityid}"
-        headers = {
-            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299',
-            'Accept-Language': 'en-US,en;q=0.8',
-            'Accept-Encoding': 'gzip, deflate, br',
-            'Connection': 'keep-alive',
-        }
         today_response = requests.get(today_url, headers=headers, timeout=5)
         try:
             if today_response.status_code == 200:
@@ -113,12 +112,22 @@ def main():
     for server_day_obj in server_days:
         logging.warning(server_day_obj.cityid)
         server_day_url = f"http://v0.yiketianqi.com/api?unescape=1&version=v91&appid=69334222&appsecret=2ME6U58N&cityid={server_day_obj.cityid}&ext=hours,aqi,life"
-        server_day_response = requests.get(server_day_url, timeout=5)
+        server_day_response = requests.get(server_day_url, headers=headers, timeout=5)
         try:
-            server_day_data = json.loads(server_day_response.text)
-            if "errcode" not in server_day_data.keys():
-                server_day_obj.content = str(server_day_data)
-                server_day_obj.save()
+            if server_day_response.status_code == 200:
+                server_day_data = json.loads(server_day_response.text)
+                if "errcode" not in server_day_data.keys():
+                    server_day_obj.content = str(server_day_data)
+                    server_day_obj.save()
+            else:
+                logging.warning(f"cityid {day_obj.cityid}  error_code {server_day_response.status_code}")
+                logging.warning(f"request fail again : {server_day_obj.cityid}")
+                server_day_response = requests.get(server_day_url, headers=headers, timeout=5)
+                if server_day_response.status_code == 200:
+                    server_day_data = json.loads(server_day_response.text)
+                    if "errcode" not in server_day_data.keys():
+                        server_day_obj.content = str(server_day_data)
+                        server_day_obj.save()
         except Exception as e:
             logging.warning(f"cityid {server_day_obj.cityid}  error {e} {server_day_response.text}")
         time.sleep(random.randint(1, 5))