JSoup似乎正在跳过HTML字符串中的某些元素。 我100%肯定HTML字符串中的所有内容,但是JSoup仅在选择要解析的元素时才读取其中的某些元素,或者根本不读取任何元素。 但我知道它们存在。 这是我的代码:谢谢:

public void parseDoc() {
    final HttpParams params = new BasicHttpParams();
    HttpClientParams.setRedirecting(params, true);
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(
            "https://secure.groupfusion.net/processlogin.php");
    String HTML = "";
    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
        nameValuePairs.add(new BasicNameValuePair("referral_page",
                "/modules/gradebook/ui/gradebook.phtml?type=student_view"));
        nameValuePairs.add(new BasicNameValuePair("currDomain",
                "beardenhs.knoxschools.org"));
        nameValuePairs.add(new BasicNameValuePair("username", username
                .getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("password", password
                .getText().toString()));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = httpclient.execute(httppost);

        HTML = EntityUtils.toString(response.getEntity());
        Document doc = Jsoup.parse(HTML);
        Element link = doc.select("a").first();
        String linkHref = link.attr("href");
        HttpGet request = new HttpGet();
        try {
            request.setURI(new URI(linkHref));
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        response = httpclient.execute(request);
        String html = "";
        InputStream in = response.getEntity().getContent();
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(in));
        StringBuilder str = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            str.append(line);
        }
        in.close();
        HTML = str.toString();
        doc = Jsoup.parse(HTML);
        Elements divs = doc.select("div.yuiTop");
        for (Element d: divs) {
            sting.append(d.text());
            sting.append("\n");
        }


    } catch (ClientProtocolException e) {
    } catch (IOException e) {
    }

}

===============>>#1 票数:1 已采纳

这里有种奇怪的代码...所以我收集到这是在进行查询,结果将返回超链接列表,并且您正在对第一个超链接的结果进行屏幕抓取,然后尝试加载内容第二个链接? 好吧,您确定服务器正在返回有效的超链接吗? 尝试在浏览器中加载页面。

如果有效,那么我不确定是什么问题,但是为什么不使用WebView.loadUrl()并让浏览器组件来处理呢?

  ask by Eli translate from so

未解决问题?本站智能推荐:

1回复

在Android中显示httpGet和响应之间的进度图像

我使用下面的代码从Web服务获取XML文件: Web服务响应该请求大约需要3-4秒。 我想这次在请求和响应之间显示图像。 最好的方法是什么? 任何帮助,将不胜感激。
1回复

Yummly API在JSON响应中返回奇怪的字符(Android)

我使用html查询访问Android应用程序中食谱的Yummly数据库: 尽管他们的文档指出GET请求以UTF-8格式返回,但我在代码中发现了一些奇怪的字符,例如: Pots de Creme a l&rsquo;Orange 。 该问题不仅限于我的Android应用程序,
1回复

Android通过WiFly与Arduino通信时HTTP失败

我正在尝试使用HTTP将命令传递给我的Arduino设备。 设备接收到该命令,并按预期执行。 但是我在下面提到的HttpClient.execute()出现错误。如何纠正代码? 输出:
3回复

如何在Android中使用API​​?

我正在尝试在我的Android应用中使用此API 。 这很简单,你给它一个小的URL ,它返回原来的URL 。 这是我第一次使用API​​。 所以,我就是这样做的: 我的问题是: 在处理API时使用HttpGet是否正确? 如果是,那我在那里犯了什么错误?
1回复

从无法正常使用的网站检索数据(Android)

我使用以下类从网站检索数据: 下面的类使用上面的类在屏幕上打印检索到的数据: 我已经将“ httpex” xml中的“ httpStuff” TextView设置为“ loading ...”。 现在我面临的问题是,当我运行该应用程序时,它永远都停留在此“加载中”。 有什么想
1回复

Jsoup 403错误和Android用户代理

我想在Android应用程序中使用Jsoup解析外部网页。 实际上我设法做到这一点,除了它是移动版本。 所以...我试图将用户代理设置为“移动”之外的其他东西。 问题是使用.userAgent()选项和.header(),IOException返回403错误。 和Http响应:
1回复

Android HttpGet获取旧版本的页面

我的应用程序具有一个功能,该功能需要用户输入,然后为网站调用HttpGet(在本例中为wiktionary)。 然后,我切出不相关的部分,然后用jsoup解析其余部分。 一个特定的页面不断返回页面源的旧版本,而不是我几天前更新的版本。 有什么方法可以强制它获取新版本吗? 该应用程序没有缓
1回复

记录了jsoup记录

我有一个网站。 可以看到里面的内容必须登录。 但是,我使用此代码登录。 然后获取登录页面。 没有显示登录屏幕。 我想问一下我该怎么办?
1回复

Android:使用JSoup从HTML检索多个元素

我想从一个div检索一个title ,一个start hour和一个end hour ,从一个名为day的大div以及另一个名为event div内检索所有title 我需要将这些items放到list但是现在我被困在这里,因为它无法检索我的3 elements 。
1回复

如何检查元素是否具有特定标签? Jsoup Android

Jsoup Android 如何检查元素是否具有特定标签? 我有一堆元素,它们使用它们来在ListView中显示数据,例如图标,标题,描述。 但是有些元素包含特定的标签名称,而有些则不需要(“对象”),我需要链接到该元素。 例: 元素#1-无对象标签->跳过