关闭

超简单的网络爬虫,附个自动下载电影种子的demo

标签: 网络爬虫
990人阅读 评论(0) 收藏 举报
分类:

这个参考了别人做的demo,原作者忘记了不好意思,在他的基础上做了点东西。恩原理很简单,就是解析你要访问url的页面,所以用到了jsoup这个解析jar包。

下面咱来看看核心代码

        List<LinkTypeData> datas = new ArrayList<LinkTypeData>();
        LinkTypeData data = null;
        try
        {
            /**
             * 解析rule
             */
            String url = rule.getUrl();
            String[] params = rule.getParams();
            String[] values = rule.getValues();
            String resultTagName = rule.getResultTagName();
            int type = rule.getType();
            int requestType = rule.getRequestMoethod();

            Connection conn = Jsoup.connect(url);
            // 设置查询参数

            if (params != null)
            {
                for (int i = 0; i < params.length; i++)
                {
                    conn.data(params[i], values[i]);
                }
            }

            // 这就是核心 Document ,返回页面的html
            Document doc = null;
            switch (requestType)
            {
            case Rule.GET:
                doc = conn.timeout(100000).get();
                break;
            case Rule.POST:
                doc = conn.timeout(100000).post();
                break;
            }

            //处理返回数据
            Elements results = new Elements();
            switch (type)
            {
            case Rule.CLASS:
                results = doc.getElementsByClass(resultTagName);
                break;
            case Rule.ID:
                Element result = doc.getElementById(resultTagName);
                results.add(result);
                break;
            case Rule.SELECTION:
                results = doc.select(resultTagName);
                break;
            default:
                //当resultTagName为空时默认去body标签
                if (TextUtil.isEmpty(resultTagName))
                {
                    results = doc.getElementsByTag("body");
                }
            }

            for (Element result : results)
            {
                Elements links = result.getElementsByTag("a");

                for (Element link : links)
                {
                    //必要的筛选
                    String linkHref = link.attr("href");
                    String linkText = link.text();

                    data = new LinkTypeData();
                    data.setLinkHref(linkHref);
                    data.setLinkText(linkText);

                    datas.add(data);
                }
            }

        } catch (IOException e)
        {
            e.printStackTrace();
        }

就是这么简单,下面附个测试,百度搜索的那个前几天还可以,现在又抽了我懒的解析了,所以附一个百度新闻的搜索测试

    /**
     * 测试百度新闻
     */
    @org.junit.Test  
    public void getDatasByCssQueryUserBaidu()  
    {  
        Rule rule = new Rule("http://news.baidu.com/ns",  
                new String[] { "word" }, new String[] { "魔力宝贝" },  null, -1, Rule.GET);  
        List<LinkTypeData> extracts = ExtractService.extract(rule);  
        printf(extracts);  
    }

哈哈,关键的没给,下电影种子的test,测试没啥,只要爬3层就爬到了,主要这个电影网好啊,哈哈,我一直在这下电影,正规电影哈,有时电影院没下这网上就有了,国内外都有,更新很快,不贴防止被封了,喜欢的可以下来看看。喜欢的朋友可以自己做个定时任务,很简单,就可以不停下载啦。

下载请点这里

备用连接地址
http://download.csdn.net/detail/ilovexiaou/9619824

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5877次
    • 积分:155
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类