2016-04-21 17 views
4

特定のWebサイトからコンソールに値を取得できるようにするアプリケーションを作成しています。値は<span>の要素です。JSoupを使用しています。URLを取得するJava JSoupエラー

私の挑戦は、このエラーに関係している:ここでは

Error fetching URL

は私のJavaコードです:

public class TestSl { 
    public static void main(String[] args) throws IOException { 
     Document doc = Jsoup.connect("https://stackoverflow.com/questions/11970938/java-html-parser-to-extract-specific-data").get(); 
     Elements spans = doc.select("span[class=hidden-text]"); 
     for (Element span: spans) { 
      System.out.println(span.text()); 
     } 
    } 
} 

そしてここでは、コンソール上のエラーです:

Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL= Java Html parser to extract specific data? at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:590) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227) at org.jsoup.helper.HttpConnection.get(HttpConnection.java:216) at TestSl.main(TestSl.java:19)

何午前私は間違っていると私はそれを解決することができますか?

+1

で403 Forbiddenは、あなたが到達しようとしていたページやリソースにアクセスすることは絶対に何らかの理由で禁止されていることを意味し、HTTPステータスコードです。 – ryekayo

+0

基本的に、そのデータを取得する方法はありませんか?多分いくつかの選択肢を使用して?それとも、サーバ/ウェブサイトでHTMLフレーズがデータを取得できないのですか? – PICKAB00

+1

ウェブサイトでHTMLパーサーを使用できるかどうかわかりませんが、HTMLパーサーはポート443または80で動作する可能性が高いので、そうは思わないでしょう。あなたがコードを実装している方法かもしれません.... – ryekayo

答えて

5

セットUser-Agentヘッダ:

.userAgent("Mozilla") 

例:

Document document = Jsoup.connect("https://stackoverflow.com/questions/11970938/java-html-parser-to-extract-specific-data").userAgent("Mozilla").get(); 
Elements elements = document.select("span.hidden-text"); 
for (Element element : elements) { 
    System.out.println(element.text()); 
} 

Stack Exchange

Inbox

Reputation and Badges

源:https://stackoverflow.com/a/7523425/1048340


おそらく、これが関連している:https://meta.stackexchange.com/questions/277369/a-terms-of-service-update-restricting-companies-that-scrape-your-profile-informa

+0

ありがとうございます。最後に働いた。どうぞよろしくお願いします。どこで私は間違えましたか? – PICKAB00

+0

もう1つの問題があります:/ stackoverflowの例は素晴らしいです。しかし、私は結果が得られない別のウェブサイトを持っています。私はもうエラーは表示されませんが、値はコンソールに表示されません。 https://www.binary.com/trading?l=EN このページには、数値が格納されるこの範囲があります。小さなグラフのすぐ横。クラスは値が上下するにつれて変化します。今は "スポット"と呼ばれるIDがあります。私はコードにクラス名とIDの両方を使用しましたが、私のコンソールで結果は得られません。何らかの理由を提案できますか? – PICKAB00

+1

おそらく、StackOverflowがユーザーエージェントを盗聴しています。私は彼らが現時点でウェブスクラップ虐待を積極的に防止しようとしていることを知っています。ここにいくつかの良いアドバイスです:https://learn.scrapehero.com/how-to-prevent-getting-blacklisted-while-scraping/ –

関連する問題