-2

可能重复:
为什么当我从 Web 浏览器打开它并用 Java 读取它时,html 源代码不同?

我有一个关于解析在线 html 页面的问题。当我从网络浏览器打开 html 源代码时,我可以看到其中的数据。

但是当我从 java 读取这个 html 页面时。我无法访问数据。

在我保存了这个 html 文件并将其作为本地文件读取后,我就可以从那里读取数据了。

我以 eBay.com.au 为例。

// - - - - 例子 - - - - -

目标网页网址: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

如果网站中显示的数据是 javascript 生成的,那么除非您在 java 代码中实现 javascript 功能,否则您将无法获取数据。

第二种可能性是 Web 服务器确定来自用户代理的数据或浏览器/获取器的功能。

于 2012-11-04T01:02:23.537 回答