我有一个关于解析在线 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());
}
}
}
我可以使用此代码获取每个产品的价格,但我希望使用此代码获取卖家位置信息。我怎么做?
//---重新编辑-------------------
我找到了解决问题的方法,我在这里为像我这样有同样问题的人发布了它。我并不是说这是最好的解决方案,但我希望它可以给你一个想法。这里是。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.List;;
public class Test{
public static void main(String[] args)
{
WebDriver driver = new FirefoxDriver();
driver.get("http://www.ebay.com.au/sch/i.html?scp=ce0&_sacat=0&_from=R40&_nkw=imac+27&_pppn=r1&_rdc=1");
driver.findElement(By.id("e1-14")).click();
driver.findElement(By.name("Stores")).click();
driver.findElement(By.id("e1-3")).click();
driver.quit();
}
}
/ -------------- ------END-------- -------------- /
我带着一个问题来到这里,如果 HTML 文件带有 Javascript,我们如何在完整执行 Javascript 的情况下从中获取数据。我想我不是很好的提问者。