1

htmlunit を使用してウェブページを解析したいのですが、コードを実行しているときにエラーが発生します。

import java.net.URL;
import java.util.List;

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlImage;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class scrapImage {

      public static void main(String[] args) throws Exception      { 
          URL url = new URL("http://www.google.com");
          //WebClient webClient = new WebClient(Opera);     
          WebClient webClient = new WebClient();    
          HtmlPage currentPage = (HtmlPage) webClient.getPage(url);    
          //get list of all divs      
          final List<?> images = currentPage.getByXPath("//img");      
          for (Object imageObject : images) {           
              HtmlImage image = (HtmlImage) imageObject;            
              System.out.println(image.getSrcAttribute());       
              }         //webClient.closeAllWindows();           } } 
          }
      }

エラーメッセージ:

Exception in thread "main" java.net.UnknownHostException: www.google.com
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:196)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:377)
    at java.net.Socket.connect(Socket.java:530)
    at java.net.Socket.connect(Socket.java:480)
    at java.net.Socket.<init>(Socket.java:377)
    at java.net.Socket.<init>(Socket.java:251)
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
    at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:97)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1430)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1388)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:325)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:386)
    at htmlunit.scrapImage.main(scrapImage.java:16)

上記の例外の解決策を教えてください。

4

3 に答える 3

1

インターネット接続に問題があるか、プロキシの背後にいるようです。

その場合は、プロキシ設定 (ホスト/ポート/ユーザー名/パスワード) を設定します。

于 2012-04-11T05:23:04.123 に答える
1

ネット接続またはファイアウォールの問題で、Java プログラムがインターネットにアクセスするのをブロックしている可能性があると思います。

于 2012-04-11T05:17:50.107 に答える
1

プロキシまたはファイアウォールの背後にいると思います。システムの現在のファイアウォールの状態を確認してください。また、プロキシに関連している場合は、次のようにコードを変更できます。

System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "your proxy host name" );
System.getProperties().put( "proxyPort", "85" );

これはあなたを助けるかもしれません。

于 2012-04-11T05:20:37.307 に答える