1

次のように、jsoup を使用して特定のサイトhttp://www.justdial.comから Web ページのタイトルを抽出しようとしています。

    Document doc=jsoup.connect("http://www.justdial.com/Mumbai/Satkar-Veg-Restaurant-%3Cnear%3E-Sahakar-Nagar-Next-To-Talwalkars-Gym-Wadala/022P5318248_TXVtYmFpIFJlc3RhdXJhbnRz_BZDET").get();
    String title=doc.title();
    System.out.println("Title="+title);

そのページのソースのどこにもないが、ブラウザで表示できるタイトル文字列を私に与えています。しかし、さまざまなサイトのすべてのページでは、適切に機能しています。したがって、その背後にある理由と、そのような場合に望ましい結果を得る方法を誰でも知ることができます。ありがとうございました。

4

2 に答える 2

4

Web サイトが適切な html を返すように、ユーザー エージェント ヘッダーを設定する必要があります。

Document doc = Jsoup.connect("http://www.justdial.com/Mumbai/Satkar-Veg-Restaurant-%3Cnear%3E-Sahakar-Nagar-Next-To-Talwalkars-Gym-Wadala/022P5318248_TXVtYmFpIFJlc3RhdXJhbnRz_BZDET").userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2").get();
String title = doc.title();
System.out.println(title);
于 2013-01-25T06:42:03.210 に答える
1

特定のページのタイトルが Javascript を介して更新されている場合、ソースで表示したり、スクリプトでスクレイピングしたりすることはできません。

Web 開発者ツールの [生成されたソースを表示] メニュー項目を使用して、元のソースと生成されたソースを比較できます。

于 2013-01-25T06:24:50.413 に答える