在网页运行Javascript - Java之后获取网页源代码

时间:2016-08-31 08:53:04

标签: javascript java html

我正在尝试获取网页来源,但我发现了一些问题。我想在源代码上获取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();
        }

    }
}

如何获得正确的链接?感谢

1 个答案:

答案 0 :(得分:0)

嗯,正如你(希望)知道的那样,自Sir Timothy发明网页以来,网页已经发展了很多。这意味着您所看到的(可以与之交互)不仅仅是从服务器传递的HTML(和CSS)代码的结果,而且通常使用JavaScript大量“后期”处理。

因此,如果您想获得该链接,则必须执行相同的后处理,即使用HtmlUnit框架,或者 - 如果您不坚持使用Java - PhantomJS