Преглед изворни кода

修改 ETL 下载,对于重定向的链接的下载方式

罗俊辉 пре 1 година
родитељ
комит
adc7c4a26b

+ 4 - 1
etl-core/src/main/java/com/tzld/crawler/etl/service/impl/EtlServiceImpl.java

@@ -166,9 +166,12 @@ public class EtlServiceImpl implements EtlService {
             // 保存数据库(去重校验)
             // 需要加一个判断,如果是看一看的视频,则不走去重策略
             id = save2db(crawlerVideo);
-            if (id <= 0 && !StringUtils.equals(crawlerVideo.getPlatform(), "kanyikan")) {
+            if (id <= 0) {
                 throw new CommonException(ExceptionEnum.DATA_ERROR, "save2db failed, duplicated out video id.");
             }
+//            if (id <= 0 && !StringUtils.equals(crawlerVideo.getPlatform(), "kanyikan")) {
+//                throw new CommonException(ExceptionEnum.DATA_ERROR, "save2db failed, duplicated out video id.");
+//            }
 
             // 策略应用
             // TODO: 获取用户选择策略

+ 7 - 2
etl-core/src/main/java/com/tzld/crawler/etl/util/FileUtils.java

@@ -119,8 +119,13 @@ public class FileUtils {
         if (useUa) {
             conn.setRequestProperty("User-Agent", FakeUserAgent.getRandomUserAgent());
         }
-        if (conn.getResponseCode() == HttpURLConnection.HTTP_FORBIDDEN) {
+        int code = conn.getResponseCode();
+        if (code == HttpURLConnection.HTTP_FORBIDDEN) {
             throw new CommonException(ExceptionEnum.URL_FORBIDDEN);
+        } else if (code == HttpURLConnection.HTTP_MOVED_PERM || code == HttpURLConnection.HTTP_MOVED_TEMP) {
+            fileUrl = conn.getHeaderField("Location");
+            download(fileUrl, filePath, useUa, false, null);
+            return;
         }
         conn.setConnectTimeout(5000);
         conn.setReadTimeout(5000);
@@ -195,7 +200,7 @@ public class FileUtils {
     public static void main(String[] args) throws Exception {
         // try {
         System.out.println("https://api-hl.huoshan.com/hotsoon/item/video/_source/?video_id=v0300fg10000ckmbrbbc77uc3nq19840&line=0&app_id=0&vquality=normal&watermark=0&long_video=0&sf=4&ts=1697528496&item_id=7290410334844718376".replace("https://api-hl.huoshan.com", "http://api-hl.huoshan.com"));
-        download("http://api-hl.huoshan.com/hotsoon/item/video/_source/?video_id=v0d00fg10000ckjb1bbc77u340cpgelg&line=0&app_id=0&vquality=normal&watermark=0&long_video=0&sf=4&ts=1697529427&item_id=7288707446217002255", "/Users/dingyunpeng/Downloads/" + System.currentTimeMillis(), true);
+        download("https://cdn-xalbum.xiaoniangao.cn/653386010000014c61302281?Expires=1704038400&OSSAccessKeyId=LTAI5tB7cRkYiqHcTdkVprwb&Signature=fvzTLq/lmPJirVzwzrBLJv58ZEI%3D", "/Users/luojunhui/Downloads/" + System.currentTimeMillis() + ".mp4", true);
         //
         // } catch (Exception e) {
         //     e.printStackTrace();