|
@@ -17,6 +17,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
|
|
|
+import java.io.*;
|
|
|
+import java.net.HttpURLConnection;
|
|
|
+import java.net.URL;
|
|
|
import java.util.List;
|
|
|
|
|
|
@SpringBootTest(classes = ZzjsApplication.class)
|
|
@@ -189,4 +192,99 @@ public class YdtTest {
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getShortVideo() throws IOException {
|
|
|
+
|
|
|
+ String savePath = "G:\\中正\\一点通\\题库短视频";
|
|
|
+ List<QuestionYdtJs> list = questionYdtJsService.selectQuestionYdtJsList2(null);
|
|
|
+
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ QuestionYdtJs questionYdtJs = list.get(i);
|
|
|
+ Long id = questionYdtJs.getId();
|
|
|
+ String shortUrl= questionYdtJs.getShortVideoUrl();
|
|
|
+ int index2 = shortUrl.lastIndexOf(".");
|
|
|
+ String lastName = shortUrl.substring(index2);
|
|
|
+ String fileName = id+lastName;
|
|
|
+ System.out.println(fileName);
|
|
|
+ downLoadFromUrl(shortUrl,fileName,savePath);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {
|
|
|
+ URL url = new URL(urlStr);
|
|
|
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
|
|
+ //设置超时间为3秒
|
|
|
+ conn.setConnectTimeout(3 * 1000);
|
|
|
+ //防止屏蔽程序抓取而返回403错误
|
|
|
+ conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
|
|
|
+ //得到输入流
|
|
|
+ InputStream inputStream = conn.getInputStream();
|
|
|
+
|
|
|
+ //获取自己数组
|
|
|
+ byte[] getData = readInputStream(inputStream);
|
|
|
+
|
|
|
+ //文件保存位置
|
|
|
+ File saveDir = new File(savePath);
|
|
|
+ if (!saveDir.exists()) {
|
|
|
+ saveDir.mkdir();
|
|
|
+ }
|
|
|
+
|
|
|
+ File file = new File(saveDir + File.separator + fileName);
|
|
|
+
|
|
|
+ FileOutputStream fos = new FileOutputStream(file);
|
|
|
+
|
|
|
+ fos.write(getData);
|
|
|
+
|
|
|
+ if (fos != null) {
|
|
|
+ fos.close();
|
|
|
+ }
|
|
|
+ if (inputStream != null) {
|
|
|
+
|
|
|
+ inputStream.close();
|
|
|
+ }
|
|
|
+ System.out.println("info:" + url + " download success");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从输入流中获取字节数组
|
|
|
+ *
|
|
|
+ * @param inputStream
|
|
|
+ * @return
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ public static byte[] readInputStream(InputStream inputStream) throws IOException {
|
|
|
+
|
|
|
+ byte[] buffer = new byte[1024];
|
|
|
+
|
|
|
+ int len = 0;
|
|
|
+
|
|
|
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
+ while ((len = inputStream.read(buffer)) != -1) {
|
|
|
+ bos.write(buffer, 0, len);
|
|
|
+ }
|
|
|
+ bos.close();
|
|
|
+
|
|
|
+ return bos.toByteArray();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ String mediaUrl = "https://wos.58cdn.com.cn/XyVuTsRqXyf/videos/c3307880da594dffa1603c6820ca802a.mp4";
|
|
|
+ int index = mediaUrl.lastIndexOf("/");
|
|
|
+ String fileName = mediaUrl.substring(index + 1);
|
|
|
+ int index2 = mediaUrl.lastIndexOf(".");
|
|
|
+ String lastName = mediaUrl.substring(index2);
|
|
|
+
|
|
|
+
|
|
|
+ System.out.println(fileName);
|
|
|
+ System.out.println(lastName);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|