2

Jsoup ライブラリは、指定された URL の完全な html を解析していません。url の元の html にはいくつかの区分がありません。

興味深いこと: http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users

Jsoup の公式サイト http://try.jsoup.org/ で上記の URL を指定すると、フェッチによって URL の正確な html が正しく表示されますが、jsoup ライブラリを使用するプログラムでは同じ結果が見つかりません。

ここに私のJavaコードがあります:

String url="http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users";

Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36").get();

String question =document.toString();
System.out.println(" whole content: "+question);

公式サイトで使用されている正しい userAgent を明確に述べましたが、その結果、元の html コードの 70% が表示されますが、途中で、目的のデータを含むいくつかの分割タグを見つけることができませんでした。

私は試してみました.....役に立たない...なぜドキュメントから欠落しているdivタグがほとんどないのですか。

URL を直接取得してブラウザに入力できます。Facebook にログインしている場合は、次のような応答が表示されます。「クエリの結果が見つかりません。スペルを確認するか、別の用語を試してください。」これは、jsoup が上記の URL の HTML を解析するときに探しているものです。

しかし、残念ながら、この部分が欠落しています。実際には、この応答は div id: "#pagelet_search_no_results" にあります。解析された html で、この ID を持つ div が見つかりませんでした。jsoup から利用できる多くのメソッドを試してみましたが、うまくいきませんでした。

4

2 に答える 2

3

また、大きなタイムアウトを設定する必要があります。例:

Document document = Jsoup.connect(url)
.header("Accept-Encoding", "gzip, deflate")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.maxBodySize(0)
.timeout(600000)
.get();
于 2014-05-15T09:48:32.190 に答える