gpt4 book ai didi

java - 如何在 java 中运行 JavaScript 方法?(我需要创建程序来下载大约 10k 首轨道)

转载 作者:搜寻专家 更新时间:2023-11-01 00:51:29 24 4
gpt4 key购买 nike

<分区>

几天后“Wirtualna Polska SA”关闭了“mp3.wp.pl”服务,所以我决定从那里下载一些音乐并保存在我的硬盘上。它大约有 150k(顺便说一句,我不需要所有文件。)所以我自己这样做会浪费时间。我创建了一个程序,它下载特定类型的所有 ID 并将其保存到 *.txt 文件夹中。要从网站下载音乐,我需要使用他们网站 download_utId('id') 中的 javascript 方法,其中 id 是 *.txt 文件中的一个整数

  1. 我可以在 java 中运行这个方法 (download_utId) 吗?
  2. 您将如何优化我的代码?
  3. 还有其他建议吗?

4.(编辑。)如何用他自己的名字保存文件?当您想下载“http://mp3.wp.pl/i/sciagnij?id=666&jakosc=hifi&streaming=0”时,此文件的默认名称为“Dub_Brother-Dance_Mission”

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

public class Test {

public static int numberOfPages = 1;

public ArrayList<String> downloadPage(String page, String findAString, String endString){
ArrayList<String> listOfIDs = new ArrayList<String>();
URL url;
InputStream is = null;
DataInputStream dis;
String line;

try {
url = new URL(page);
is = url.openStream(); // throws an IOException
dis = new DataInputStream(new BufferedInputStream(is));

while ((line = dis.readLine()) != null) {
if(line.contains("Liczba znalezionych utworów:")){
numberOfPages = numberOfPages(new Integer(line.substring(line.indexOf("<b>") + 3, line.lastIndexOf("</b>. Po"))));
}
if(line.contains(findAString)){
listOfIDs.add((line.substring(line.indexOf(findAString)+15, line.lastIndexOf(endString))));
}
}
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
is.close();
} catch (IOException ioe) {
// nothing to see here
}
}
return listOfIDs;
}

public int numberOfPages(int numberOfSongs){
return numberOfSongs - numberOfSongs/10*10 >= 5 ? numberOfSongs/10+1 : numberOfSongs/10;
}

public void addToFile(){
ArrayList<String> hehe = new ArrayList<String>();
for(int i = 0; i < numberOfPages; i++){
String link = "http://mp3.wp.pl/p/strefa/utwory/E9,nazwa," + i + "0,+0,+0,+0.html";
hehe.addAll(downloadPage(link, "download_utId('", "'"));
System.out.print(link);
}
FileWriter writer = null;
try {
writer = new FileWriter("c:/output.txt");
for(String str: hehe) {
writer.write(str + " ");
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args){
Test t = new Test();
t.addToFile();
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com