美文网首页The Magnificent JavaJava学习笔记
java爬取智联招聘职位信息

java爬取智联招聘职位信息

作者: RonaldoWang | 来源:发表于2017-03-11 14:29 被阅读392次

    第一次写爬虫,案例比较简单,就在智联招聘网站上爬取职位信息。

    技术点:IO流,集合,Jsoup使用,以及前端的知识

    这里写图片描述

    代码如下:

    package com.wty.utils;
    
    import java.io.BufferedReader;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    /**
     * 
     *<p>Title:智联招聘网站爬虫小案例</p>
     *<p>Description:</p>
     *<p>Company:</p>
     *@author wty
     *@date 2017年3月11日上午11:28:01
     *
     */
    public class DownWebPageUtils {
        public static String getHtmlCode(String url, String encoding) {
            URL uri =null;
            URLConnection urlConnection =null;
            InputStream inputStream =null;
            InputStreamReader inputStreamReader = null;
            BufferedReader bReader =null;
            StringBuffer sBuffer= new StringBuffer();
        
            try {
                // 建立网络连接
                 uri = new URL(url);
                // 打开连接
                 urlConnection = uri.openConnection();
                //输入流
                 inputStream = urlConnection.getInputStream();
                inputStreamReader = new InputStreamReader(inputStream, encoding);
                bReader = new BufferedReader(inputStreamReader);
                String temp;
                while ((temp = bReader.readLine()) != null) {
                    sBuffer.append(temp + "\n");
                }
    
            } catch (Exception e) {
                e.printStackTrace();
                
            }finally {
                //关闭资源
                if(bReader!=null){
                    try {
                        bReader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return sBuffer.toString();
    }
        public static List<HashMap<String, String>> analyzeHtml(String url, String encoding){
            String htmlCode = getHtmlCode(url, encoding);
            Document document = Jsoup.parse(htmlCode);
            Elements elements = document.getElementsByClass("newlist");
            List<HashMap<String, String>> list=new ArrayList<>();
            for (Element e : elements) {
                HashMap<String, String> map = new HashMap<>();
                String zwmc = e.getElementsByClass("zwmc").text();
                String gsmc = e.getElementsByClass("gsmc").text();
                String zwyx = e.getElementsByClass("zwyx").text();
                String gzdd = e.getElementsByClass("gzdd").text();
                String gxsj = e.getElementsByClass("gxsj").text();
                map.put("职位名称:", zwmc);
                map.put("公司名称", gsmc);
                map.put("职位月薪", zwyx);
                map.put("工作地点", gzdd);
                map.put("发布日期", gxsj);
                list.add(map);
            }
            
            return list;
        }
        public static void main(String[] args) {
            List<HashMap<String, String>> resultList = analyzeHtml("http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E4%B8%8A%E6%B5%B7&kw=java&sm=0&p=1", "UTF-8");
            System.out.println(resultList);
        }
    }
    
    
    

    数据可以在控制台中打印出来,至于jsp页面的展现笔者还没写,无非就是表格,循环什么的。有兴趣的话可以写一下。

    感觉爬虫还蛮好玩的。下次准备爬个美图网站。。。hhhhh

    相关文章

      网友评论

      • windc:美图的爬了吗?:grin:

      本文标题:java爬取智联招聘职位信息

      本文链接:https://www.haomeiwen.com/subject/oegagttx.html