2017-08-16 12 views
-1

"page.asText()"を使用して蒸気マーケットプレイスのWebページを解析しようとしていますが、これは機能しません。これは、HTMLが1秒でロードされた後にアイテムがロードされないために発生する可能性があります。私が見コンソールでWebClient(htmlunit)にいくつかの要素がありません

public static void main(String[] args) throws Exception{ 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.OFF); 
      java.util.logging.Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.OFF); 
      String link="http://steamcommunity.com/market/search?appid=730#p6_price_asc"; 
      HtmlPage page; 
      WebClient webClient = new WebClient(BrowserVersion.CHROME); 
      page = (HtmlPage) webClient.getPage(link); 
      System.out.println(page.asText()); 
      } 

Show advanced options... 






< 1 2 3 4 5 6 ... 939 > 
Showing 1-10 of 9389 results 

それはする必要があります:すべての

Show advanced options... 
PRICE 
QUANTITY 
NAME 
31,218 
Starting at: 
$0.35 USD 
Operation Hydra Case 
Counter-Strike: Global Offensive 
276,582 
Starting at: 
$0.23 USD 
. 
. 
. 

M4A1-S | Decimator (Field-Tested) 
Counter-Strike: Global Offensive 


232 
Starting at: 
$27.06 USD 

AWP | Asiimov (Battle-Scarred) 
Counter-Strike: Global Offensive 


28,068 
Starting at: 
$0.75 USD 

Krakow 2017 Legends Autograph Capsule 
Counter-Strike: Global Offensive 


< 1 2 3 4 5 6 ... 940 > 
Showing 1-10 of 9392 results 

答えて

0

まず、ジャバスクリプトが有効になっていることを確認します。私は通常、負荷に複数の要素を待つために何

webClient.getOptions.setJavaScriptEnabled(true); 

は次のとおりです。

thread.sleep(3000); 

これは、すべての追加コンテンツをロードするためにページを3秒を与えます。

また、ここで他のユーザーがリストされている他の方法のいずれかを試すことができます使用する必要があるとき

HTMLUnit doesn't wait for Javascript

+1

を「のThread.sleep(3000);」? WebClient webClient =新しいWebClient(BrowserVersion.CHROME); webClient.getOptions()。setJavaScriptEnabled(true); ページ=(HtmlPage)webClient.getPage(link); System.out.println(page.asText()); –

+0

webClient.getPage(リンク)の後にthread.sleep()を使用する必要があります。 –

+0

WOW。 "getPage(link)"は常にリロードされますか?私はgetPageを1回と思います。ありがとう。そんなに) –

関連する問題