Android 智联招聘网站信息获取

使用的是Jsoup框架,主要使用的是select函数完成的。

  • #id elements with attribute ID of “id” div#wrap, #logo
  • .class elements with a class name of “class” div.left, .result

  • 我就用这个两种用法就能获取网站的招聘信息,但select函数的用法很多,我发个API的链接,大家自己查看自己需要的
    Selector (jsoup Java HTML Parser 1.10.3 API)
    https://jsoup.org/apidocs/org/jsoup/select/Selector.html

我这里先说一下我们要获取数据的位置
Android 智联招聘网站信息获取_第1张图片

最下面的table都是我们需要获取的数据
获取的数据:

09-29 11:21:33.555 648-794/zzw.myapplication V/test: 职位名称 反馈率 公司名称 职位月薪 工作地点 发布日期
09-29 11:21:33.555 648-794/zzw.myapplication V/test: 大数据全栈开发工程师 深圳市杰南餐饮有限公司 20001-30000 深圳 置顶 地点:深圳公司性质:事业单位公司规模:20-99人经验:1年以下学历:本科职位月薪:20001-30000元/月 数据平台全栈开发 数据平台全栈开发 数据平台全栈开发 数据平台全栈开发 数据平台全栈开发 数据平台全栈开发
09-29 11:21:33.565 648-794/zzw.myapplication V/test: Android开发工程师 97% 深圳羚羊极速科技有限公司 15000-25000 深圳-南山区 最新 地点:深圳-南山区公司性质:民营公司规模:20-99人经验:3-5年学历:本科职位月薪:15000-25000元/月 岗位职责: 1、负责视频云Android端SDK(采集、编码、传输、解码、播放等)功能开发和维护; 2、参与视频云Android端直播和视频监控APP产品立项,负责输出设计文档、完成功能开发; 3、分析并解决开发过程中的问题;协助测试部制定测试方案,定位发现的问题…
09-29 11:21:33.565 648-794/zzw.myapplication V/test: Android工程师 深圳市黑卡科技有限公司 6001-8000 深圳-龙岗区 最新 地点:深圳-龙岗区公司性质:民营公司规模:100-499人经验:3-5年学历:不限职位月薪:6001-8000元/月 要求: 1、计算机及相关专业本科及以上学历;良好的Java技术功底; 2、两年以上Android开发经验,有平台类产品优先。 3、熟悉Android开发框架,熟悉蓝牙通讯 4、熟练掌握Android ui、网络、数据库等开发技巧 5、熟悉A…

上代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView)findViewById(R.id.tv);
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new Thread(new Task()).start();
            }
        });

    }

    class Task implements Runnable {
        @Override
        public void run() {
            String url = "http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=Android&sm=0&p=1";
            Connection conn = Jsoup.connect(url);
            // 修改http包中的header,伪装成浏览器进行抓取
            conn.header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/    20170929 Firefox/32.0");
            Document doc = null;
            try {
                doc = conn.get();
            } catch (IOException e) {
                e.printStackTrace();
            }

            //Elements containerEs = doc.select("div.container");
            //Element containerE = containerEs.first();
            //Log.v("test",containerEs.size()+"");
            //Log.v("test",containerEs.text());

            Elements main = doc.select("div.main");
            Elements search = main.select("div.Search_newlist_main");
            Elements newlist = search.select("div.newlist_main");
            Elements clearfix = newlist.select("div.clearfix");
            Elements wrap = clearfix.select("div.newlist_wrap");
            Elements list = wrap.select("div.newlist_list");
            Elements content = list.select("div.newlist_list_content");
            Elements item = content.select("table.newlist");

            Log.v("test",item.size()+"");

            for(Element element:item){
                Log.v("test",element.text());
            }




        }
    }
}

我们可以看到我在一层div一层div的往里获取数据,最后才获得table标签的数据

你可能感兴趣的:(Android框架)