博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSOUP简单应用
阅读量:7232 次
发布时间:2019-06-29

本文共 2332 字,大约阅读时间需要 7 分钟。

hot3.png

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
 * 针对
 * http://zhidao.baidu.com/question/423488719.html?fr=uc_push&push=ql&oldq=1问题
 * (http://www.appannie.com/top/iphone/united-states/games/ 用jsoup抓取这个网站的信息并输出Free一栏中排名上升度大于30的游戏,最好有详细代码)
 * 编写的利用JSOUP写的排序程序
 * 
 * ZLG
 *
 */
public class TJsoup {
    public List<TopFreeValue> list = new ArrayList<TopFreeValue>();
    
    
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        Document document;
        try {
            document = Jsoup.connect("http://www.appannie.com/top/iphone/united-states/games/#")
            .data("query","java").userAgent("ie").timeout(30000).cookie("auth", "token").post();
            Elements ele = document.select("td.top_free*");
            List<TopFreeValue> list = new ArrayList<TopFreeValue>();
            for(Element element:ele){
                String topvalue = element.select("span").first().text();
                if(topvalue!=null && topvalue.startsWith("▲")){
                        String name = element.select("a").first().text();
                        Integer value =  Integer.valueOf(topvalue.substring(1, topvalue.length()));
                        if(value!=null && value>30){
                            TJsoup th = new TJsoup();
                            TopFreeValue free = th.new TopFreeValue();
                            free.setName(name);
                            free.setUpvalue(value);
                            list.add(free);
                        }
                       
                }
            }   
            Collections.sort(list); 
//            list.subList(0, 30);
            System.out.println(list.size());
            for(TopFreeValue value:list){
                System.out.println(value.getName()+"   ....  "+value.getUpvalue());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch(ClassCastException e1){
            e1.printStackTrace();
        }
        
    }
    
    /**
     * 定义内部类 内部类实现 name--value
     * 并且实现comparable接口
     * ZLG
     *
     */
    public class TopFreeValue implements Comparable<Object>{
        public int Upvalue;
        public String name;
        
        /**
         * @param upvalue the upvalue to set
         */
        public void setUpvalue(int upvalue) {
            Upvalue = upvalue;
        }
        /**
         * @param name the name to set
         */
        public void setName(String name) {
            this.name = name;
        }
        /**
         * the upvalue
         */
        public int getUpvalue() {
            return Upvalue;
        }
        /**
         * the name
         */
        public String getName() {
            return name;
        }
        @Override
        public int compareTo(Object o) {
            if(o instanceof TopFreeValue){
                TopFreeValue free = (TopFreeValue)o;
                return free.Upvalue-this.Upvalue;
            }else{
                throw  new ClassCastException();
            }
        }
        
    };
}

转载于:https://my.oschina.net/u/875836/blog/97249

你可能感兴趣的文章
简单的手机号判断
查看>>
(五) solr 索引数据导入:csv格式
查看>>
Guava 1.5-Throwables:简化异常和错误的传播与检查
查看>>
开源 Java 模板引擎 HTTL 1.0.0 发布
查看>>
ASP.NET MVC4 音乐商店,Entity Framework 4.1 表名被自动转换成复数问题解决
查看>>
poj3308
查看>>
hdu1166(单点更新,区间求和)
查看>>
RamDisk块设备驱动实例开发讲解一
查看>>
【CSS3 入门教程系列】CSS3 Media Queries 实现响应式设计
查看>>
VC1.窗体设计-自绘对话框
查看>>
Synergy 一个bug的解决办法
查看>>
HTML5socket通信——postMessage出现的不能提交的问题
查看>>
常用的CSS[持续更新]
查看>>
ssh框架下junit测试
查看>>
html中的fieldset
查看>>
(myconnpy出现,pymysql可以入冷宫了)打个小补丁,让pymysql正确处理日期类型和NULL类型 - MK2 - 博客园...
查看>>
MySQL的复制主从设置
查看>>
简要记录浮点型数据的二进制存储格式
查看>>
git 创建 .gitignore 文件 建立项目过滤规则
查看>>
LETTERS(搜索题)
查看>>