IT技术研习社

导航

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=\t"; 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技术研习社 。

posted on 2020-03-14 15:58  钧阳  阅读(378)  评论(0编辑  收藏  举报