2014-03-13 65 views
4

我可以連接到大多數網站,並獲得HTML很好,但是當試圖連接到一個網站,其中大部分的內容是在JavaScript初始頁面加載後生成的,但沒有得到任何數據。有沒有辦法與Jsoup做到這一點,或不支持它?Jsoup得到動態生成的HTML

+0

JSoup是解析器,而不是瀏覽器引擎。您需要使用一些網絡驅動程序,如[selenium](http://docs.seleniumhq.org/) – Pshemo

回答

5

JSoup包含一些基本的連接處理,但它不是一個Web瀏覽器。它擅長解析靜態html內容。它不運行任何JavaScript,所以你運氣不好。然而,也有可能會遵循不同的選擇:

  1. 您可以分析要檢索並找出如何頁面你有興趣在獲取加載內容。通常情況下,挖掘加載內容的原始來源並加以處理並不困難。這種方法的好處是你可以得到你想要的而不需要額外的庫,並且檢索速度會很快。

  2. 您可以使用(完整)瀏覽器並自動加載頁面。一個非常好的工具是selenium webdriver與無頭Webkit瀏覽器phantomjs的組合。然而,這需要額外的軟件和額外的庫在你的項目,並會比第一個解決方案運行速度慢得多。