zoukankan      html  css  js  c++  java
  • Jsoup爬虫抓取招聘数据

    今天接到一个任务,要抓取职位列表以及职位的数量,老板做PPT要用到这些数据。

    研究君觉得这个还蛮有意思的,马上就贡献给各位了。

    平时做爬虫,大家都说用Pyhon简单,其实啊,使用java也很简单。废话少说,上代码:

    首先创建maven工程,增加下面的依赖:

    <dependencies>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.13.1</version>
        </dependency>
    </dependencies>
    

    然后增加类:CrawerJobTitle

    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.select.Elements;
    
    import java.io.IOException;
    
    public class CrawerJobTitle {
        public static void main(String[] args) throws IOException {
            //因为智联上的职位列表比较清晰,且容易抓取,就从智联获取了
    Document doc = Jsoup.connect("https://www.zhaopin.com/").get(); Elements newsHeadlines = doc.select("a.zp-jobNavigater__pop--href");
         for (int i = 0; i < newsHeadlines.size(); i++) { //抓取51job上的职位数量 String url2 = "https://search.51job.com/list/000000,000000,0000,00,9,99," + newsHeadlines.get(i).text()+ //职位名称 ",2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare= "; Document doc2 = Jsoup.connect(url2).get(); String titleJobBNum = doc2.select("#resultList>div.dw_tlc>div.rt").first().text(); System.out.println(newsHeadlines.get(i).text()+" "+titleJobBNum); } } }

      

    说明两点:

    1、这里用到了Jsoup这个工具,Jsoup可厉害了,可以使用Jquery选择器的语法,轻松实现html的解析。

    2、51job的搜索,关键字是放在中间的。刚开始我思考关键字怎么传的时候还走了点弯路。仔细琢磨发现很简单,就是放在中间,其他都是写死的。

    欢迎大家讨论并发的相关问题,也可以加我的头条号: IT技术研习社 。

  • 相关阅读:
    Flipping with Physis: Motion Editing for Acrobatics
    Practicle Character Physics For Animators
    html5 files属性
    ASP.NET大文件上传设置。maxRequestLength无效的情况
    elasticsearch
    html用Css来关闭sougou输入框
    模拟form提交
    疯狂的跨域技术
    日志记录用NLog
    备份iis站点信息
  • 原文地址:https://www.cnblogs.com/junyang/p/12492567.html
Copyright © 2011-2022 走看看