一个针对51job的过滤信息(培训)的java爬虫脚本,供大家参考,

//在51job搜索后再用此脚本过滤



package test;


import java.io.FileOutputStream;


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.parser.Tag;
import org.jsoup.select.Elements;
import org.junit.Test;


public class demo {


// 设置51job职位列表首页面的url
public static String startUrl = "http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=060000%2C00&funtype=0000&industrytype=00&keyword=Java&keywordtype=2&lang=c&stype=2&postchannel=0000&fromType=1&confirmdate=9";
// 设置过滤公司
public static String[] companys = { "中软","达内" };
// 设置过滤关键字
public static String[] keywords = { "培训", "实训" ,"零基础"};
// 保存信息StringBuffer
public static StringBuffer buffer=new StringBuffer();


//执行
public static void main(String[] args) throws Exception {
test(startUrl);
saveDetail();
}


@Test
// 主页面获取职位衔接
public static void test(String url) throws Exception {
Document mainDocument = null;
try {
mainDocument = Jsoup.connect(url).get();
} catch (Exception e) {
// TODO: handle exception
return;
}
// 获取下一页衔接
Elements pageList = mainDocument.getElementsByClass("bk");
String nextPageUrl = pageList.get(1).getAllElements().attr("href");


// 遍历职位
Elements jobList = mainDocument.getElementsByClass("dw_table");
Element jobsElement = jobList.get(0);
// 获取职位集
Elements jobs = jobsElement.getElementsByClass("el");

// 获取所有职位
for (Element job : jobs) {
int flag=0; //过滤公司标记变量
String companyName=job.text();
for (String company : companys) {
if (companyName.contains(company)) {
System.out.println("namepass:" + companyName);
flag=1; //过滤公司
}
}
if(flag==1){
continue;
}
// 穿过元素t1,a,href获取职位衔接
Elements t1Nodes = job.getElementsByClass("t1");
Element t1Node = t1Nodes.get(0);
Elements aNodes = t1Node.getElementsByTag("a");
String jobUrl = aNodes.attr("href");
// 开始检查关键字
if(checkDetail(jobUrl)){
buffer.append("<a target='_blank' href='"+jobUrl+"'>"+companyName+"</a></br></br>");
}else{
System.out.println("contentpass:"+companyName);
}
}

// 浏览下一页
if (!"".equals(nextPageUrl)) {
test(nextPageUrl);
} else {
System.out.println("浏览结束");
}
}


// 模式一: 检查职位详情内容,显示通过
public static boolean checkDetail(String jobUrl) throws Exception {
if (!"".equals(jobUrl)) {
Document jobDocument = null;
try {
jobDocument = Jsoup.connect(jobUrl).get();
} catch (Exception e) {
// TODO: handle exception
return false;
}
Elements jobDetails = jobDocument
.getElementsByClass("tCompany_main");
// 获取到职位详情
String detail = jobDetails.text();
// 根据关键字筛选
for (String keyword : keywords) {
if (detail.contains(keyword)) {
return false; //过滤不通过
}
}
return true; //过滤通过
}
return false;
}


//保存通过信息
public static void saveDetail() throws Exception {
FileOutputStream fos=new FileOutputStream("d://test.html");
fos.write(buffer.toString().getBytes());
fos.close();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你提一个简单的Python爬虫示例,用于爬取51job网站上的招聘信息。首先,我们需要安装一些必要的库,比如`requests`和`beautifulsoup4`。你可以使用以下命令来安装它们: ``` pip install requests pip install beautifulsoup4 ``` 然后,我们可以编写以下Python代码来实现爬虫: ```python import requests from bs4 import BeautifulSoup # 设置爬取的URL和请求头 url = 'https://search.51job.com/list/000000,000000,0000,00,9,99,Python,2,1.html' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'} # 发送HTTP请求并获取响应 response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') # 解析HTML并提取招聘信息 job_list = soup.select('#resultList .el') # 输出招聘信息 for job in job_list: job_name = job.select('.t1')[0].text.strip() company_name = job.select('.t2')[0].text.strip() salary = job.select('.t3')[0].text.strip() location = job.select('.t4')[0].text.strip() release_date = job.select('.t5')[0].text.strip() print('职位名称:', job_name) print('公司名称:', company_name) print('薪资:', salary) print('工作地点:', location) print('发布日期:', release_date) print() ``` 在这个示例中,我们首先设置了要爬取的URL和请求头,然后发送HTTP请求并获取响应。接下来,我们使用`BeautifulSoup`库解析HTML并提取招聘信息。最后,我们输出招聘信息,其中使用`select()`方法选择HTML元素。你可以根据需要调整代码以满足你的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值