java_crawling_02 爬取拉勾网

拉勾网爬取招聘信息
将信息封装成类,输出时只需要输出类即可

package com.haina.test;

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class LagouTest {
	public static void main(String[] args) throws IOException {
		Document doc = Jsoup.connect("https://www.lagou.com/zhaopin/Java/?labelWords=label")
		//破解服务器的反爬虫限制
				//cookir header的作用是为了把我的请求伪装成正常浏览器访问
		.cookie("user_trace_token","20200314104508-73c43e00-dc28-4c43-9b67-7301c8984957")
		.header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36")
		.get();
		Element body = doc.body();
//		System.out.println(body.text());
		
		
		
		Elements ul = body.getElementsByClass("item_con_list");
//		System.out.println(ul.text());
		//用样式我们可以获取两个ul,但第一个时空的,所以我们要获取地位个ul
		Element ele = ul.get(1);
		//通过标签名,来获取ul下面的所有li标签
		Elements li = ele.getElementsByTag("li");
		
		for(Element e :li){
			String salary = e.attr("data-salary");
//			System.out.println(salary);
			String company = e.attr("data-company");
//			System.out.println(company);
			String positionName = e.attr("data-positionname");
//			System.out.println(positionName);
			Elements exp = e.getElementsByClass("li_b_1");
			String expStr = exp.text();
			//获取字符串中第一个空格所在位置
			int index = expStr.indexOf(" ");
			//字符串截取,把第一个空格后面的数据截取出来
//			System.out.println(expStr.substring(index+1));
			
			Elements fuli = e.getElementsByClass("li+b_r");
			//获取福利,去掉福利中的中文双引号
//			System.out.println(fuli.text().replace("“","").replace("”",""));
			
			
			Position pos = new Position();
			pos.setSalary(salary);
			pos.setCompany(company);
			pos.setPositionName(positionName);
			pos.setExp(expStr.substring(index+1));
			pos.setFuli(fuli.text().replace("“","").replace("”",""));
			System.out.println(pos);
			
		}
		
		
		
	}
}


//User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
//user_trace_token=20200314104508-73c43e00-dc28-4;c43-9b67-7301c8984957



//--位置类---------------------------------------
package com.haina.test;

public class Position {
	private String salary;
	
	private String company;
	private String positionName;
	private String exp;
	private String fuli;
	
	//get-set 方法 --快捷方式  右键 - source - Generate Getters and Setters
	//获取值的方法  
	public String getSalary(){
		return salary;
	}
	//设置值的方法
	public void setSalary(String salary){
		this.salary = salary;
	}
	//自动生成
	public String getCompany(){
		return company;
	}
	public void setCompany(String company){
		this.company = company;
	}
	public String getPositionName() {
		return positionName;
	}
	public void setPositionName(String positionName) {
		this.positionName = positionName;
	}
	public String getExp() {
		return exp;
	}
	public void setExp(String exp) {
		this.exp = exp;
	}
	public String getFuli() {
		return fuli;
	}
	public void setFuli(String fuli) {
		this.fuli = fuli;
	}
	
	//格式化输出数据
	@Override//右键 - source - generate tostring 
	public String toString() {
		return "Position [salary=" + salary + ", company=" + company + ", positionName=" + positionName + ", exp=" + exp
				+ ", fuli=" + fuli + "]";
	}
	
	
	
}


输出:

Position [salary=15k-20k, company=团子出行(原四川汽车票务网), positionName=高级java, exp=, fuli=]
Position [salary=25k-40k, company=招银网络科技, positionName=Java开发工程师, exp=, fuli=]
Position [salary=15k-25k, company=浙江农信, positionName=Java开发工程师, exp=, fuli=]
Position [salary=15k-30k, company=微聚未来, positionName=java开发工程师, exp=, fuli=]
Position [salary=9k-18k, company=深蓝保, positionName=java开发工程师, exp=, fuli=]
Position [salary=20k-40k, company=汽车之家, positionName=java开发工程师, exp=, fuli=]
Position [salary=18k-25k, company=360, positionName=java开发工程师, exp=, fuli=]
Position [salary=12k-18k, company=安恒信息, positionName=Java开发工程师, exp=, fuli=]
Position [salary=25k-40k, company=招银网络科技, positionName=Java开发工程师, exp=, fuli=]
Position [salary=15k-30k, company=腾讯, positionName=java开发工程师, exp=, fuli=]
Position [salary=25k-50k, company=OPPO, positionName=Java开发工程师, exp=, fuli=]
Position [salary=20k-40k, company=华为技术有限公司, positionName=Java开发工程师, exp=, fuli=]
Position [salary=12k-20k, company=科来, positionName=Java开发工程师, exp=, fuli=]
Position [salary=20k-40k, company=玩吧, positionName=Java开发工程师, exp=, fuli=]
Position [salary=25k-50k, company=快手, positionName=Java开发工程师, exp=, fuli=]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值