2017-05-31 5 views
0

私はjavaコードを使ってgithub Webページを取得しようとしています。Java - 権限のあるWebページを取得する

String startingUrl = "https://github.com/xxxxxx"; 
URL url = new URL(startingUrl); 
HttpURLConnection uc = (HttpURLConnection) url.openConnection(); 
uc.connect(); 
String line = null; 
StringBuffer tmp = new StringBuffer(); 
try{ 
    BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "UTF-8")); 
    while ((line = in.readLine()) != null) { 
     tmp.append(line); 
    }  
}catch(FileNotFoundException e){ 
} 

ただし、私がここで受け取ったページは、githubへのログイン後にブラウザで見たものとは異なります。私は次のように認証ヘッダーを送信しようとしましたが、どちらもうまくいきませんでした。

uc.setRequestProperty("Authorization", "Basic encodexxx"); 

ログインしたときと同じページを取得するにはどうすればよいですか?

+0

サイトで実際にHTTP基本認証が使用されていると思われる理由はありますか? – VGR

答えて

0

私はあなたが何を取得しているかわからないが、ウェブクローラのための最も一般的な問題はほとんどウェブサイトの所有者は、ウェブクローラを好きではないということですので、私は、もっとこの上を伝えることはできません。したがって、通常のユーザーのように動作する必要があります - たとえば、ブラウザ。一部のWebサイトにアクセスしているときにブラウザの検査要素を開いて(f12キーを押して)、ブラウザが要求に応じて何を送信したかを確認してから、模倣してください。たとえば、ヘッダにHost, Refererなどを追加します。あなたはこれを実験する必要があります。

また、一部のウェブサイトの所有者は高度な技術を使用するため(サイトにアクセスすることを妨げる)、ウェブサイトのクロールを止めないものがあります。いくつかはあなたが望むことをさせるでしょう。最も公正な選択肢は、www.somedomain.com/ robots.txtをチェックすることです。スクレイピングに許可されているエンドポイントと許可されていないエンドポイントのリストがあります。

関連する問題