我正在尝试获取网页来源,但我发现了一些问题。我想在源代码上获取Url,但是当我下载时,Url会成为Javascript
方法。
在浏览器源查看器上:
<a class="title" href="/hkstp_web/en/Directory/Acquest%20Stem%20Cell%20Research%20Company%20Limited/">aaa Company Limited</a>
但是当我把它搞砸时,它变成了这个:
<a href="javascript:void(0)"><span>...</span></a>
这是我的代码:
public class DownloadPage {
public static void main(String[] args) {
URL url;
try {
// get URL content
url = new URL("https://www.hkstp.org/hkstp_web/en/directory/");
URLConnection conn = url.openConnection();
// open the stream and put it into BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String inputLine;
//save to this filename
String fileName = "C:\\Users\\USER\\Documents\\server\\test.txt";
File file = new File(fileName);
if (!file.exists()) {
file.createNewFile();
}
//use FileWriter to write file
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
while ((inputLine = br.readLine()) != null) {
bw.write(inputLine + "\n");
}
bw.close();
br.close();
System.out.println("Done");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
如何获得正确的链接?感谢
答案 0 :(得分:0)
嗯,正如你(希望)知道的那样,自Sir Timothy发明网页以来,网页已经发展了很多。这意味着您所看到的(可以与之交互)不仅仅是从服务器传递的HTML(和CSS)代码的结果,而且通常使用JavaScript大量“后期”处理。
因此,如果您想获得该链接,则必须执行相同的后处理,即使用HtmlUnit框架,或者 - 如果您不坚持使用Java - PhantomJS。