2016-08-31 2 views
0

ウェブページのソースを取得しようとしていて、何か問題が見つかりました。ソース上でUrlを取得したいのですが、フェッチするとUrlはJavascriptメソッドになります。ブラウワーソースビューアでウェブページ実行後にウェブページソースを取得するJavascript - Java

<a class="title" href="/hkstp_web/en/Directory/Acquest%20Stem%20Cell%20Research%20Company%20Limited/">aaa Company Limited</a> 

しかし、私はそれをfatchときは、このなる:ここで

<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

ソースコードビューアを確認すると、JavaScriptから生成されたものではなく、サーバーから送信されたページが表示されるため、別のリンクになっている可能性があります。 – jcubic

+0

コードを共有していただけますか? –

+0

コードを忘れてしまいました。申し訳ありません – Capslock10

答えて

0

あなたが(うまくいけば)知っているように、WebページはSir Timothyが発明して以来ずっと進化しています。これは、あなたが見ているもの(対話することができる)は、サーバーから渡されたHTML(およびCSS)コードの結果だけでなく、JavaScriptを使用してブラウザによって処理されることが多いことを意味します。

そのリンクを取得するには、HtmlUnitフレームワークを使用して同じ後処理を行う必要があります。または、Java-PhantomJSを主張していない場合は、

関連する問題