Http Scala和html:将图像(*.jpg等)下载到硬盘
我有一个Scala程序,可以下载和解析html。我从html中获得了图像文件的链接,现在我需要将这些图像传输到硬盘。我想知道我应该使用什么样的Scala方法 我的连接代码:Http Scala和html:将图像(*.jpg等)下载到硬盘,http,scala,download,Http,Scala,Download,我有一个Scala程序,可以下载和解析html。我从html中获得了图像文件的链接,现在我需要将这些图像传输到硬盘。我想知道我应该使用什么样的Scala方法 我的连接代码: import java.net._ import java.io._ import _root_.java.io.Reader import org.xml.sax.InputSource import scala.xml._ def parse(sUrl:String) = { var url = new UR
import java.net._
import java.io._
import _root_.java.io.Reader
import org.xml.sax.InputSource
import scala.xml._
def parse(sUrl:String) = {
var url = new URL(sUrl)
var connect = url.openConnection
var sorce:InputSource = new InputSource
var neo = new TagSoupFactoryAdapter //load sUrl
var input = connect.getInputStream
sorce.setByteStream(input)
xml = neo.loadXML(sorce)
input.close
}
实现这一点的一种方法是:收集图像的url并向服务器请求它们(打开与图像url的新连接并将ByTestStream存储在硬盘驱动器中)然后您可能需要查看。虽然该解决方案是纯Java的,但您仍然可以修改Scala语法以“仅使用它”另一种选择是使用更干净的系统命令
import sys.process._
import java.net.URL
import java.io.File
object Downloader {
def start(location: String) : Unit = {
val url = new URL(location)
var path = url match {
case UrlyBurd(protocol, host, port, path) => (if (path == "") "/" else path)
}
path = path.substring(path.lastIndexOf("/") + 1)
url #> new File(path) !!
}
}
object UrlyBurd {
def unapply(in: java.net.URL) = Some((
in.getProtocol,
in.getHost,
in.getPort,
in.getPath
))
}
得到那部分,如果你能给出一些示例代码,我很感激我没有代码。保存到文件中的代码应该与您拥有的代码几乎相同,但不是loadXML,而是写入到文件中。要获取所有URL图像,您可以选择所有图像标记并提取源属性,然后为每个图像调用上面的save方法。太棒了!谢谢幸运的是,我正在使用maven,所以我现在只是把它放在一个.java文件中。