Javascript 在java中,使用jsoup保存网页src和链接

Javascript 在java中,使用jsoup保存网页src和链接,javascript,java,html,css,jsoup,Javascript,Java,Html,Css,Jsoup,试图保存整个网页,包括链接的样式表和javascript。我可以保存页面,但在尝试打开保存的页面时,所有脚本和样式都丢失了。我需要能够保存这些链接的源代码以及html <link href="/thePage.css" rel="stylesheet" type="text/css"> <script language="Javascript" type="text/Javascript" src="/thePage.js"></script> 这在JSou

试图保存整个网页,包括链接的样式表和javascript。我可以保存页面,但在尝试打开保存的页面时,所有脚本和样式都丢失了。我需要能够保存这些链接的源代码以及html

<link href="/thePage.css" rel="stylesheet" type="text/css">
<script language="Javascript" type="text/Javascript" src="/thePage.js"></script>

这在JSoup中应该是可能的,但需要做一些工作。获得文档后,可以使用select()(JSoupo选择器)检索匹配的元素。因此,您可以执行以下操作:

Elements media = doc.select("script[src]");
Elements links = doc.select("link[href]");
然后,您可以迭代找到的元素并下载媒体。您可以执行以下操作来下载文件:

byte[] bytes = Jsoup.connect(linkUrl)
.header("Accept-Encoding", "gzip, deflate")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.referrer(URL_TO_PARSE)
.ignoreContentType(true)
.maxBodySize(0)
.timeout(600000)
.execute()
.bodyAsBytes();
确保正确构造传递给Jsoup.connect()的URL。相对路径显然可用于脚本/媒体位置


然后需要将字节保存到一个文件位置,即与源HTML文件中的预期引用相匹配的目录层次结构。这可能是相当大的工作量。祝你好运。

Java!=JavaScript
CSS和JavaScript是链接,因此您必须执行其他请求才能下载它们。我将使用什么?当我在媒体/链接中迭代时,元素下的哪个属性包含源代码?到目前为止,media.data、html和文本都是空白的。我认为脚本需要使用Element.attr(“abs:src”),链接需要使用.attr(“abs:href”)。
byte[] bytes = Jsoup.connect(linkUrl)
.header("Accept-Encoding", "gzip, deflate")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.referrer(URL_TO_PARSE)
.ignoreContentType(true)
.maxBodySize(0)
.timeout(600000)
.execute()
.bodyAsBytes();