2016-08-05 79 views
0

我想獲取網站的HTML頁面(例如http://htmlunit.sourceforge.net),但是我得到IlleagalArgumentException的錯誤:找不到聲明的字段類org.apache.http.impl.client.HttpClientBuilder.dnsResolver 。我的代碼如下:使用htmlunit獲取HTML頁面

public class Main1 { 
    public static void main(String[] args) { 
      try { 
       homePage(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

    public static void homePage() throws Exception { 
      try (final WebClient webClient = new WebClient()) { 
       final HtmlPage page = webClient.getPage("http://www.google.com"); 
       String text = page.asText(); 
       System.out.println(text); 
      } 
     } 
    } 

代碼有問題嗎?謝謝

+0

爲什麼您需要獲取頁面?你想解析它嗎? – Tugrul

+0

@Tugrul是的,我需要解析它,我正在閱讀該htmlunit可以解析頁面的html和javascript元素。 –

+0

查看我的建議。 – Tugrul

回答

1

您可以使用jsoup parser

小的代碼示例

Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); 
Elements newsHeadlines = doc.select("#mp-itn b a"); 

高級用法

File input = new File("/tmp/input.html"); 
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/"); 

Element content = doc.getElementById("content"); 
Elements links = content.getElementsByTag("a"); 
for (Element link : links) { 
    String linkHref = link.attr("href"); 
    String linkText = link.text(); 
} 

有用的網址

+0

Jsoup無法正確解析Javascript元素?我需要的實際上是可以獲得HTML包含Javascript的東西,因此我正在嘗試htmlunit –

+0

如果您只需要javascripts,只需使用任何網頁報廢應用程序來擴展* .js並將文件保存在本地存儲中。然後,解析它們,無論你想要什麼。 – Tugrul

+0

我需要解析真實和當前頁面,不幸的是,我想要的這個頁面是一個單頁面應用程序,稍後將通過javascript獲取所需的元素。如果我使用Jsoup,那麼它只會得到背景頁面而不是我想要的當前元素。 –