让我们解释发生了什么,我正在解析一个html页面,以在我的Android应用程序中显示其内容。首先我用android webview
加载html然后我通过下面的代码得到html代码:
// load a webview
wb.postUrl(url, EncodingUtils.getBytes(postData, "BASE64"));
// on page finish i will call a @JavascriptInterface
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.HTMLOUT.processMain(
document.getElementsByTagName('html')[0].innerHTML);");
}
@JavascriptInterface
class LoadListener{
@JavascriptInterface
public void processMain(String html)
{
doc= Jsoup.parse(html);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//here i can parse doc that is a jsoup document and select elements
doc.select("#login > tbody > tr > td.error").text();
});
我的问题:我的html页面中有table
动态添加到html(我不知道如何,追加?addchild?php?或...因为我无法访问php代码) 。我用这行代码选择那个表! 但返回null。
doc.select("#login > tbody > tr > td.error").text()
那么如何选择那个表?
答案 0 :(得分:0)
Jsoup不是浏览器。它是一个解析器。它不了解JavaScript并且无法运行它。因此,如果您的页面通过Javascript动态构造DOM元素,则无法使用Jsoup访问它。如果您需要,请查看selenium webdriver