Browse Source

Merge remote-tracking branch 'origin/master'

01495251 1 month ago
parent
commit
ad0d173bd5

+ 12 - 9
crossborder/anhui/crawl_gov_anhui_full.py

@@ -189,9 +189,9 @@ def detect_latest_month(driver, url):
                 continue
             return f"{check_year}年{check_month}月"
         except:
-            log.info(f"未找到 {target_title}")
+            log.error(f"未找到 {target_title}")
             continue
-    log.info("三个月内未找到有效数据")
+    log.error("三个月内未找到有效数据")
     return None
 
 def crawl_with_selenium(url, mark):
@@ -251,14 +251,14 @@ def crawl_with_selenium(url, mark):
 
     finally:
         driver.quit()
-        print(f"安徽合肥海关全量数据下载任务完成")
+        print(f"安徽合肥海关全量数据下载任务完成")
         # 等待5s后执行
         time.sleep(5)
         hierarchical_traversal(download_dir)
-        print("安徽合肥海关类章、国家、城市所有文件处理完成!")
+        print("安徽海关类章、国家、城市所有文件处理完成!")
         time.sleep(5)
         base_mysql.update_shandong_yoy('安徽省')
-        print("安徽合肥海关城市同比sql处理完成")
+        print("安徽合肥海关城市同比sql处理完成")
     return 'finish'
 
 
@@ -326,15 +326,18 @@ def main():
     parser.add_argument('--year', type=int, default=None, help='终止年份(如2023),未指定时抓取最新两个月')
     args = parser.parse_args()
 
+    start_time = time.time()
     if args.year == 2023:
-        log.info("正在全量爬取安徽海关数据")
+        log.info("正在全量爬取安徽海关数据")
         crawl_with_selenium('http://hefei.customs.gov.cn/hefei_customs/zfxxgkzl59/3169584/479584/479585/index.html','all')
-        send_dingtalk_message('安徽海关全量数据爬取完成')
+        duration = time.time() - start_time
+        send_dingtalk_message(f'安徽省海关全量数据爬取完成,耗时 {duration:.2f} 秒')
     else:
-        log.info("正在增量爬取安徽海关数据")
+        log.info("正在增量爬取安徽海关数据")
         res = crawl_with_selenium('http://hefei.customs.gov.cn/hefei_customs/zfxxgkzl59/3169584/479584/479585/index.html','auto')
         if res == 'finish':
-            send_dingtalk_message('安徽海关增量数据爬取完成')
+            duration = time.time() - start_time
+            send_dingtalk_message(f'安徽省海关增量数据爬取完成,耗时 {duration:.2f} 秒')
 
 if __name__ == '__main__':
     main()

+ 1 - 1
crossborder/anhui/gov_commodity_anhui_city.py

@@ -129,4 +129,4 @@ def hierarchical_traversal(root_path):
 
 if __name__ == '__main__':
     hierarchical_traversal(download_dir)
-    log.info(f"安徽合肥海关城市所有文件处理完成!")
+    log.info(f"安徽合肥海关城市所有文件处理完成!")

+ 1 - 1
crossborder/anhui/gov_commodity_anhui_country.py

@@ -139,4 +139,4 @@ def hierarchical_traversal(root_path):
 
 if __name__ == '__main__':
     hierarchical_traversal(download_dir)
-    log.info("安徽合肥海关国别所有文件处理完成!")
+    log.info("安徽海关国别所有文件处理完成!")

+ 1 - 1
crossborder/anhui/gov_commodity_anhui_import_export.py

@@ -182,4 +182,4 @@ if __name__ == '__main__':
 
     # root = Path(base_country_code.download_dir)/'2025'/'04'
     # process_folder(root)
-    log.info("安徽合肥海关类章所有文件处理完成!")
+    log.info("安徽海关类章所有文件处理完成!")

+ 11 - 8
crossborder/hebei/crawl_gov_hebei_full.py

@@ -167,9 +167,9 @@ def detect_latest_month(driver, url):
                 continue
             return f"{check_year}年{check_month}月"
         except:
-            log.info(f"未找到 {target_title}")
+            log.error(f"未找到 {target_title}")
             continue
-    log.info("三个月内未找到有效数据")
+    log.error("三个月内未找到有效数据")
     return None
 
 def crawl_with_selenium(url, mark):
@@ -232,10 +232,10 @@ def crawl_with_selenium(url, mark):
         # 等待5s后执行
         time.sleep(5)
         hierarchical_traversal(download_dir)
-        log.info(f"河北石家庄海关全量数据下载任务完成")
+        log.info(f"河北海关全量数据下载任务完成")
         time.sleep(5)
         base_mysql.update_shandong_yoy('河北省')
-        log.info("河北石家庄海关城市同比sql处理完成")
+        log.info("河北海关城市同比sql处理完成")
     return 'finish'
 
 def wait_for_download_complete(timeout=30, existing_files=None):
@@ -304,15 +304,18 @@ def main():
     parser.add_argument('--year', type=int, default=None, help='终止年份(如2023),未指定时抓取最新两个月')
     args = parser.parse_args()
 
+    start_time = time.time()
     if args.year == 2023:
-        log.info("正在全量爬取河北海关数据")
+        log.info("正在全量爬取河北海关数据")
         crawl_with_selenium('http://shijiazhuang.customs.gov.cn/shijiazhuang_customs/zfxxgk43/2988665/2988681/index.html', 'all')
-        send_dingtalk_message('河北海关全量数据爬取完成')
+        duration = time.time() - start_time
+        send_dingtalk_message(f'河北省海关全量数据爬取完成,耗时 {duration:.2f} 秒')
     else:
-        log.info("正在增量爬取河北海关数据")
+        log.info("正在增量爬取河北海关数据")
         res = crawl_with_selenium('http://shijiazhuang.customs.gov.cn/shijiazhuang_customs/zfxxgk43/2988665/2988681/index.html','auto')
         if res == 'finish':
-            send_dingtalk_message('河北海关增量数据爬取完成')
+            duration = time.time() - start_time
+            send_dingtalk_message(f'河北省海关增量数据爬取完成,耗时 {duration:.2f} 秒')
 
 if __name__ == '__main__':
     main()

+ 1 - 1
crossborder/hebei/gov_commodity_hebei_city.py

@@ -126,4 +126,4 @@ def hierarchical_traversal(root_path):
 
 if __name__ == '__main__':
     hierarchical_traversal(download_dir)
-    log.info(f"河北石家庄海关城市所有文件处理完成!")
+    log.info(f"河北海关城市所有文件处理完成!")

+ 1 - 1
crossborder/hebei/gov_commodity_hebei_country.py

@@ -121,4 +121,4 @@ def hierarchical_traversal(root_path):
 
 if __name__ == '__main__':
     hierarchical_traversal(download_dir)
-    log.info(f"河北石家庄海关国家的所有文件处理完成!")
+    log.info(f"河北海关国家的所有文件处理完成!")

+ 1 - 1
crossborder/hebei/gov_commodity_hebei_import_export.py

@@ -185,4 +185,4 @@ if __name__ == '__main__':
 
     # root = Path(download_dir)/'2023'/'02'
     # process_folder(root)
-    log.info(f"河北石家庄海关出入口商品所有文件处理完成!")
+    log.info(f"河北海关出入口商品所有文件处理完成!")

+ 12 - 9
crossborder/jiangsu/crawl_gov_jiangsu_full.py

@@ -208,9 +208,9 @@ def detect_latest_month(driver, url):
                 continue
             return f"{check_year}年{check_month}月"
         except:
-            log.info(f"未找到 {target_title}")
+            log.error(f"未找到 {target_title}")
             continue
-    log.info("三个月内未找到有效数据")
+    log.error("三个月内未找到有效数据")
     return None
 
 def crawl_with_selenium(url, mark):
@@ -271,15 +271,15 @@ def crawl_with_selenium(url, mark):
 
     finally:
         driver.quit()
-        log.info(f"江苏南京海关全量数据下载任务完成")
+        log.info(f"江苏海关全量数据下载任务完成")
         # 等待5s后执行
         time.sleep(5)
         all_records = base_mysql.get_hs_all()
         hierarchical_traversal(download_dir, all_records)
-        log.info("江苏南京海关类章、国家、城市所有文件处理完成!")
+        log.info("江苏海关类章、国家、城市所有文件处理完成!")
         time.sleep(5)
         base_mysql.update_shandong_yoy('江苏省')
-        log.info("江苏南京海关城市同比sql处理完成")
+        log.info("江苏海关城市同比sql处理完成")
     return 'finish'
 
 
@@ -341,15 +341,18 @@ def main():
     parser.add_argument('--year', type=int, default=None, help='终止年份(如2023),未指定时抓取最新两个月')
     args = parser.parse_args()
 
+    start_time = time.time()
     if args.year == 2023:
-        log.info("正在全量爬取江苏海关数据")
+        log.info("正在全量爬取江苏海关数据")
         crawl_with_selenium('http://nanjing.customs.gov.cn/nanjing_customs/zfxxgk58/fdzdgknr95/3010051/589289/7e2fcc72-1.html','all')
-        send_dingtalk_message('江苏海关全量数据爬取完成')
+        duration = time.time() - start_time
+        send_dingtalk_message(f'江苏省海关全量数据爬取完成,耗时 {duration:.2f} 秒')
     else:
-        log.info("正在增量爬取江苏海关数据")
+        log.info("正在增量爬取江苏海关数据")
         res = crawl_with_selenium('http://nanjing.customs.gov.cn/nanjing_customs/zfxxgk58/fdzdgknr95/3010051/589289/7e2fcc72-1.html','auto')
         if res == 'finish':
-            send_dingtalk_message('江苏海关增量数据爬取完成')
+            duration = time.time() - start_time
+            send_dingtalk_message(f'江苏省海关增量数据爬取完成,耗时 {duration:.2f} 秒')
 
 if __name__ == '__main__':
     main()

+ 2 - 2
crossborder/jiangsu/gov_commodity_jiangsu_city.py

@@ -131,7 +131,7 @@ def hierarchical_traversal(root_path):
 
 if __name__ == '__main__':
     hierarchical_traversal(download_dir)
-    log.info(f"江苏南京海关城市所有文件处理完成!")
+    log.info(f"江苏海关城市所有文件处理完成!")
     time.sleep(5)
     base_mysql.update_shandong_yoy('江苏省')
-    log.info("江苏南京同比sql处理完成")
+    log.info("江苏同比sql处理完成")

+ 1 - 1
crossborder/jiangsu/gov_commodity_jiangsu_country.py

@@ -133,4 +133,4 @@ def hierarchical_traversal(root_path):
 
 if __name__ == '__main__':
     hierarchical_traversal(download_dir)
-    log.info("江苏南京海关国别所有文件处理完成!")
+    log.info("江苏海关国别所有文件处理完成!")

+ 1 - 1
crossborder/jiangsu/gov_commodity_jiangsu_import_export.py

@@ -169,4 +169,4 @@ if __name__ == '__main__':
 
     root = Path(download_dir)/'2023'/'01'
     process_folder(root, all_records)
-    print("江苏南京海关类章所有文件处理完成!")
+    print("江苏海关类章所有文件处理完成!")

+ 1 - 1
crossborder/utils/dingtalk.py

@@ -30,5 +30,5 @@ def send_dingtalk_message(message):
 if __name__ == '__main__':
     # 发送钉钉消息
     # webhook_url = "https://oapi.dingtalk.com/robot/send?access_token=86f0016712dac5836e8cae7f7c6564d103de3de603228a3fad744e6bfc3e22fd"
-    message = "安徽合肥海关数据下载任务已完成"
+    message = "安徽海关数据下载任务已完成"
     send_dingtalk_message(message)

+ 12 - 9
crossborder/zhejiang/crawl_gov_zhejiang_full.py

@@ -278,9 +278,9 @@ def detect_latest_month(driver, url):
                 continue
             return f"{check_year}年-{check_month}月"
         except:
-            log.info(f"未找到 {target_title}")
+            log.error(f"未找到 {target_title}")
             continue
-    log.info("三个月内未找到有效数据")
+    log.error("三个月内未找到有效数据")
     return None
 
 def crawl_with_selenium(url, mark):
@@ -314,14 +314,14 @@ def crawl_with_selenium(url, mark):
 
     finally:
         driver.quit()
-        log.info(f"浙江杭州海关全量数据下载任务完成")
+        log.info(f"浙江海关全量数据下载任务完成")
         # 等待5s后执行
         time.sleep(5)
         hierarchical_traversal(download_dir)
-        log.info("浙江杭州海关类章、国家、城市所有文件处理完成!")
+        log.info("浙江海关类章、国家、城市所有文件处理完成!")
         time.sleep(5)
         base_mysql.update_shandong_yoy('浙江省')
-        log.info("浙江杭州海关城市同比sql处理完成")
+        log.info("浙江海关城市同比sql处理完成")
     return 'finish'
 
 def wait_for_download_complete(timeout=30, existing_files=None):
@@ -388,15 +388,18 @@ def main():
     parser.add_argument('--year', type=int, default=None, help='终止年份(如2023),未指定时抓取最新两个月')
     args = parser.parse_args()
 
+    start_time = time.time()
     if args.year == 2023:
-        log.info("正在全量爬取浙江海关数据")
+        log.info("正在全量爬取浙江海关数据")
         crawl_with_selenium('http://hangzhou.customs.gov.cn/hangzhou_customs/575609/zlbd/575612/575612/6430241/6430315/index.html', 'all')
-        send_dingtalk_message('浙江海关全量数据爬取完成')
+        duration = time.time() - start_time
+        send_dingtalk_message(f'浙江省海关全量数据爬取完成,耗时 {duration:.2f} 秒')
     else:
-        log.info("正在增量爬取浙江海关数据")
+        log.info("正在增量爬取浙江海关数据")
         res = crawl_with_selenium('http://hangzhou.customs.gov.cn/hangzhou_customs/575609/zlbd/575612/575612/6430241/6430315/index.html','auto')
         if res == 'finish':
-            send_dingtalk_message('浙江海关增量数据爬取完成')
+            duration = time.time() - start_time
+            send_dingtalk_message(f'浙江省海关增量数据爬取完成,耗时 {duration:.2f} 秒')
 
 if __name__ == '__main__':
     main()

+ 2 - 2
crossborder/zhejiang/gov_commodity_zhejiang_city.py

@@ -159,9 +159,9 @@ def hierarchical_traversal(root_path):
 
 if __name__ == '__main__':
     hierarchical_traversal(download_dir)
-    log.info(f"浙江杭州海关城市所有文件处理完成!")
+    log.info(f"浙江海关城市所有文件处理完成!")
     time.sleep(5)
     base_mysql.update_shandong_yoy('浙江省')
-    log.info("同比sql处理完成")
+    log.info("浙江省海关城市同比sql处理完成")
     # root = Path(download_dir)/'2024'/'07'
     # process_folder(root)

+ 1 - 1
crossborder/zhejiang/gov_commodity_zhejiang_country.py

@@ -172,4 +172,4 @@ if __name__ == '__main__':
 
     root = Path(download_dir) / '2024' / '07'
     process_folder(root)
-    log.info("浙江杭州海关国别所有文件处理完成!")
+    log.info("浙江海关国别所有文件处理完成!")

+ 1 - 1
crossborder/zhejiang/gov_commodity_zhejiang_import_export.py

@@ -228,4 +228,4 @@ if __name__ == '__main__':
 
     # root = Path(download_dir)/'2023'/'01'
     # process_folder(root)
-    log.info("浙江杭州海关类章所有文件处理完成!")
+    log.info("浙江海关类章所有文件处理完成!")