返回顶部
首页 > 资讯 > 移动开发 >Android爬取网页JSON数据详细教程【新手向】
  • 479
分享到

Android爬取网页JSON数据详细教程【新手向】

json数据JSON教程Android 2022-06-06 14:06:56 479人浏览 八月长安
摘要

这几天做一个Android获取JSON的任务,发现jsoup只能获取静态页面,无法获取动态页面的Json数据。 有同学给我更正:Jsoup可以爬取动态页面,但必须要加请求头(data),以下为正确例子: String url =

这几天做一个Android获取JSON的任务,发现jsoup只能获取静态页面,无法获取动态页面的Json数据。

有同学给我更正:Jsoup可以爬取动态页面,但必须要加请求头(data),以下为正确例子:


String url = "你的网页接口";
Map data = Maps.newHashMap();
data.put("countryCode", "+86");
data.put("mobile", mobile);
data.put("passWord", "f20332f07cdaab9ec0472655a83438d4");
data.put("invitionCode", "PU9HFMNMZ2FL");
data.put("validateCode", codeCallable);
data.put("geetest_challenge", challenge);
data.put("geetest_validate", validate);
data.put("geetest_seccode", validate + "|jordan");
String json = JSON.toJSONString(data);
Connection.Response response = Jsoup.connect(url).ignoreContentType(true).data(data).requestBody(json)
.header("Accept", "application/json, text/plain, *
                    String NewsData = stringBuffer.toString();
                    JSONObject jb = JSON.parseObject(NewsData);
                    String Newsdata2 = jb.getString("data");
                    JSONObject jb1 = JSON.parseObject(Newsdata2);
                    String Newsdata3 = jb1.getString("list");
                    Log.e("Newsdata3", "Newsdata3"+Newsdata3);
                    List DNews = JSON.parseArray(Newsdata3, News.class);
                    for (News TT:DNews)
                    {
                        jsonTeacherEntity = new News();
                        int id = TT.getId();
                        String game_name = TT.getGame_name();
                        int is_grandslm = TT.getIs_grandslm();
                        String game_level = TT.getGame_level();
                        String ground_name = TT.getGround_name();
                        String match_time = TT.getMatch_time();
                        jsonTeacherEntity.setId(id);
                        jsonTeacherEntity.setGame_name(game_name);
                        jsonTeacherEntity.setGame_level(game_level);
                        jsonTeacherEntity.setIs_grandslm(is_grandslm);
                        jsonTeacherEntity.setGround_name(ground_name);
                        jsonTeacherEntity.setMatch_time(match_time);
                        NewsList.add(jsonTeacherEntity);
                    }
                }
            } catch (MalfORMedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Object o) {
            super.onPostExecute(o);
            //通知适配器发生改变
            myAdapter.notifyDataSetChanged();
            //取消进度条对话框
            progressDialog.cancel();
        }
    }
}

主界面UI代码:activity_main.xml



    

代码直接复制上去,调试下,直接就可以运行。

运行截图:

作者运行环境:android studio 3.5.3 

Android的坑太大了,跳进去一定要多百度,多阅读代码,把代码都消化才有进步。 


作者:DeepGym


--结束END--

本文标题: Android爬取网页JSON数据详细教程【新手向】

本文链接: https://lsjlt.com/news/29633.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作