Jsoup解析html的一些使用技巧

来源:互联网 发布:阿里云产品主要优势 编辑:程序博客网 时间:2024/05/16 02:53

前段时间确定了毕设,每天晚上花时间完善功能。
考虑到要异步解析html抓取数据,jsoup——json的使用模式是最方便了,html代码的提取方式不要太花式太强大~╮(╯▽╰)╭~

使用期间jsoup自带的解析url数据有点慢,异步线程如下:

private Document doc;    @Override  protected Document doInBackground(String... params) {        Date startdate=new Date();    try {     doc=Jsoup.connect(params[0]).timeout(5000).get();    } catch (IOException e) {     e.printStackTrace();    }    Date enddate=new Date();    Long time=enddate.getTime()-startdate.getTime();            Log.e("使用连接耗时==",""+time);        return doc;  }

测试:


个人感觉可能是api太繁冗,后来想了一下还是自己写http解析:

private String strAll;@Overrideprotected String doInBackground(String... params) {Date startdate=new Date();strAll = new HttpURLconn().httpURLconn(url);Date enddate=new Date();Long time=enddate.getTime()-startdate.getTime();          Log.e("使用连接耗时==",""+time); return strAll;}

异步改为~

private String strAll;@Overrideprotected String doInBackground(String... params) {Date startdate=new Date();strAll = new HttpURLconn().httpURLconn(url);Date enddate=new Date();Long time=enddate.getTime()-startdate.getTime();          Log.e("使用连接耗时==",""+time); return strAll;}

测试:

好吧,白天上班一不小心还得加班...晚上补功能实在没精力去深究了,这里记录一下有时间了要得到why,能有大神点明一下就更好了~还有jsoup可一行代码往服务器post数据,挺方便,有兴趣的哥们可以深入研究~


继续~得到解析的html代码,转为Document,规范、补全解析格式。

Document doc =Jsoup.parse(result);


中文开发指南:http://www.open-open.com/jsoup/


这里用www.ip138.com里的身份验证做例子,

异步获取html代码结束

@Overrideprotected void onPostExecute(String result) {if(result!=null){Document doc2 =Jsoup.parse(result);//选择html中的第四个table标签里的所有<tr>标签对Elements select = doc2.select("table").eq(4).select("tr");List<String> list = new ArrayList<String>();for (Element element : select) {String text = element.getElementsByTag("td").text();Log.e("text", ""+text);}//Log.e("if_out","list0:"+list.get(0));//Log.e("if_out","list1:"+list.get(1));//Log.e("if_out","list2:"+list.get(3));}}

得到


随意网上找的一个身份证号,可以看到第三个td对是空的,这在取数据的时候要注意,最好每一行都能打印出来~


别忘记访问网络的权限~

最后,异步线程的学习资料网上很多,推荐郭神的良心博客:http://blog.csdn.net/guolin_blog/article/details/11711405


记录,共勉!



0 0
原创粉丝点击