java简单爬取Boss直聘招聘基本信息

准备工作先去https://jsoup.org/download下载一个jsoup.jar;熟悉web前端知识;熟悉浏览器抓包,分析请求和返回

开始写代码爬取

/**
 * @Desc: 简单爬取boss直聘的基本招聘信息
 * @Author: me
 * @Created by: 2019/7/3 0003 16:48  
 **/
class BossLoadUtils {
    private static String[] mJobTypes = {"android", "ios", "java", "python", "php", "h5", "大数据", "flutter", ""};
    private static int mIndex = 0;//切换不同岗位

    public static void main(String[] args) throws IOException, InterruptedException {
        //获取编辑推荐页
        Document document = Jsoup.connect("https://www.zhipin.com/job_detail/?query=" + mJobTypes[mIndex] + "&city=101280100")
                //模拟火狐浏览器
                .userAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)")
                .get();
        //获取工作列表数据
        Elements job_primary = document.select("div[class='job-primary']");
        //遍历取出每一条工作数据记录集合
        List<String> mJobInfoList = job_primary.eachText();
        printTabTitleBar();
        for (String jobInfo : mJobInfoList) {
            //可以根据空格做切割处理获取相关数据(注意:这里可以更精确的筛选对应标签取出对应值,我偷懒了)
            String[] mSplit = jobInfo.split(" ");
            JobInfo mJobInfo = new JobInfo(mSplit[0], mSplit[1], mSplit[2], mSplit[3], mSplit[4], mSplit[5], mSplit[6], mSplit[7]);
            printlnJobInfo(mJobInfo);
            Thread.sleep(10);
            printDashLine();
        }
    }

    private static void printTabTitleBar() {
        printlnTitle();
        printDashLine();
        StringBuffer sb = new StringBuffer();
        append(sb, "岗位名称", "薪资", "城市", "区", "办公地点及工作年限", "公司", "行业及人数", "招聘者");
        println(sb.toString());
        printDashLine();
    }

    private static void append(StringBuffer sb, String jobName, String salary, String city, String area, String locationAndYears, String company, String industryAndPersonNum, String recruiter) {
        sb.append(jobName).append("  |  ")
                .append(salary).append("  |  ")
                .append(city).append("  |  ")
                .append(area).append("  |  ")
                .append(locationAndYears).append("     |      ")
                .append(company).append("     |      ")
                .append(industryAndPersonNum).append("     |      ")
                .append(recruiter).append("|");
    }

    private static void printlnTitle() {
        println("-----------------------------------------------------------Java爬取boss直聘" + mJobTypes[mIndex] + "招聘信息-------------------------------------------------------");
    }

    private static void printlnJobInfo(JobInfo jobInfo) {
        StringBuffer sb = new StringBuffer();
        append(sb, jobInfo.jobName, jobInfo.salary, jobInfo.city, jobInfo.area, jobInfo.locationAndYears, jobInfo.company, jobInfo.industryAndPersonNum, jobInfo.recruiter);
        println(sb.toString());
    }

    private static void println(String log) {
        System.out.println(log);
    }

    private static void printDashLine() {
        println("---------------------------------------------------------------------------------------------------------------------------------------------");
    }
}

class JobInfo {
    public String jobName;               //岗位名称
    public String salary;                //薪资
    public String city;                  //城市
    public String area;                  //区
    public String locationAndYears;      //办公地点及工作年限
    public String company;               //公司
    public String industryAndPersonNum;  //行业及人数
    public String recruiter;             //招聘者

    public JobInfo(String jobName, String salary, String city, String area, String locationAndYears, String company, String industryAndPersonNum, String recruiter) {
        this.jobName = jobName;
        this.salary = salary;
        this.city = city;
        this.area = area;
        this.locationAndYears = locationAndYears;
        this.company = company;
        this.industryAndPersonNum = industryAndPersonNum;
        this.recruiter = recruiter;
    }
}

效果如下

在这里插入图片描述
在这里插入图片描述
免责声明:纯属学习娱乐;无商用

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提数据并存储,以便后续分析或展示。虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓的场景。 虫的工作流程包括以下几个关键步骤: URL收集: 虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获。 请求网页: 虫使用HTTP或其他协议向目标URL发起请求,获网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 虫对获的HTML进行解析,提有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助虫定位和提目标数据,如文本、图片、链接等。 数据存储: 虫将提的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反虫机制,虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反虫应对: 由于虫的存在,一些网站采了反虫措施,如验证码、IP封锁等。虫工程师需要设计相应的策略来应对这些挑战。 虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值