2017-08-01 1 views
1

私は最初のプロジェクトとしてスクレーパーを作ろうとしています。私はかなり新しく、私が書いたコードは実際に理解できません。私はそれを理解していませんが、日食には何の誤りもないようです。リストにHTMLコードを追加する

私が書いたコードは、htmlソースファイルを読み込んで、配列リストに1行ずつ追加してリストを返すことができなくなるまで続けていると仮定しています。シンプルかどうかは分かりませんが、なぜ動作していないのか分かりません。

import java.util.ArrayList; 
import java.io.InputStreamReader; 
import java.net.URL; 
import java.util.List; 
import java.io.BufferedReader; 



public class Scraper { 
    public static void main(String [] args)throws Exception{ 

     get_url_source("https://statsroyale.com/clan/99VUU8Y"); 
} 

    public static List<String> get_url_source(String URL)throws Exception { 

     List <String> source = new ArrayList <>(); 

     URL stats = new URL("https://statsroyale.com/clan/99VUU8Y"); 
     BufferedReader in = new BufferedReader(new InputStreamReader(stats.openStream())); 

     String inputLine; 
     while ((inputLine = in.readLine()) != null) 
      source.add(inputLine); 

     return source; 
    } 
}  

また、書式設定が間違っていると本当にお詫び申し上げます。まだフォーマットがどのように機能し、どこに行くのかを学びたい。

(それは思ったほど簡単ではありません)エラーMSGは、サイトがボットによってアクセスされた場合、 をだまして見るためにあなたのユーザーエージェントをチェックしている

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: https://statsroyale.com/clan/99VUU8Y 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) 
    at java.net.URL.openStream(Unknown Source) 
    at Scraper.get_url_source(Scraper.java:21) 
    at Scraper.main(Scraper.java:13) 
+0

は403エラーが何であるか - https://www.lifewire.com/403-forbidden-error-explainedを参照してください-2617989 –

答えて

0

...長いですが、ここでされていますあなたはこの方法でユーザエージェント を変更する必要があり、通常のユーザーであるサイト:

URL stats = new URL("https://statsroyale.com/clan/99VUU8Y"); 

    HttpsURLConnection statsConnection = (HttpsURLConnection) stats.openConnection(); 
    statsConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); 
    statsConnection.connect(); 

    BufferedReader in = new BufferedReader(new InputStreamReader(statsConnection.getInputStream())); 
関連する問題