-2

重複の可能性:
HTML ソースを Web ブラウザーから開いて Java で読み取ったときに異なるのはなぜですか?

オンラインの HTML ページの解析について質問があります。Web ブラウザーから HTML ソースを開くと、そこにデータが表示されます。

しかし、Javaからこのhtmlページを読むと. データに到達できません。

この html ファイルを保存し、ローカル ファイルとして読み取った後、そこからデータを読み取ることができます。

例として eBay.com.au を取り上げます。

// - - - - 例 - - - - -

対象の Web ページ URL: http://www.ebay.com.au/sch/i.html?_trksid=p3907.m570.l1311&_nkw=imac+27&_sacat=0&_from=R40

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

import org.htmlcleaner.CleanerProperties;
import org.htmlcleaner.TagNode;
import org.htmlcleaner.HtmlCleaner;
import java.net.URL;

public class HtmlCleanerTest
{
    public static void main(String[] args) throws Exception
    {
        CleanerProperties props = new CleanerProperties();

        URL myURL = new URL("http://www.ebay.com.au/sch/i.html?_trksid=p3907.m570.l1311&_nkw=imac+27&_sacat=0&_from=R40");

        TagNode tagNode = new HtmlCleaner(props).clean(myURL);

        Object[] myNodes = tagNode.getElementsByAttValue("class", "s1", true, true);

        for(Object oNote : myNodes)
        {
            TagNode n = (TagNode) oNote;
            System.out.println(n.getText());
        }
    }
}

このコードを使用して各商品の価格を取得できますが、これを使用して売り手の位置情報を取得することを期待していました。それ、どうやったら出来るの?

4

1 に答える 1

0

Web サイトに表示されるデータが JavaScript で生成されたものである場合、Java コードに JavaScript 機能を実装しない限り、データを取得する方法はありません。

2 番目の可能性は、Web サーバーがユーザーエージェントからのデータまたはブラウザー/フェッチャーの機能を決定することです。

于 2012-11-04T01:02:23.537 に答える