您现在的位置是:首页 > 编程 > 

python爬取招聘网信息并保存为csv文件

2025-07-20 21:47:20
python爬取招聘网信息并保存为csv文件 我们以猎聘网为例 一、打开网站查信息 进入后搜索想要爬取的岗位信息,右键选择 “检查” 进入开发者界面 点击右上角的network,选择doc 然后点击图中的搜索按钮,输入想要爬取的岗位名称,然后刷
python爬取招聘网信息并保存为csv文件

我们以猎聘网为例

一、打开网站查信息


进入后搜索想要爬取的岗位信息,右键选择 “检查” 进入开发者界面


点击右上角的network,选择doc

然后点击图中的搜索按钮,输入想要爬取的岗位名称,然后刷新页面,选择搜索下边的第二个


这个时候我们看到有我们需要的url,从中也可知网站的请求方式为get请求,我们也得用get请求!

部分代码解析:

1、导入模块
import parsel
import requests
import csv
2、用url放我们的网址
url = 	https://www.liepin/zhaopin/	
、定义data放我们的参数

这个是网页中payload的参数,也就是url中问号后面的参数

data = {
    	inputFrom	: 	www_index	,
    	workYearCode	: 	0	,
    	key	: 	python	,
    	scene	: 	input	,
    	ckId	: 	kfpt1emhvkrshc9o4h2xquxd74pfihmb	,
}
4、用headers放我们的请求头

请求头在网页中Request headers的最后面

headers = {
    	User-Agent	: 	Mozilla/5.0 (Windows T 10.0; Win64; x64) AppleWebKit/57.6 (KHTML, like Gecko) 	
                  	Chrome/99.0.4844.74 Safari/57.6 Edg/99.0.1150.46 	
}
5、用respe接收我们发出的请求

网页中用的是get请求,我们也得用get请求

respe = requests.get(url=url, headers=headers, params=data)

选择网页中的css

selector = parsel.Selector(respe.text)
6、把最大的标签提取出来
lis = selector.css(	.left-list-box .job-list-item	)
7、以最大的标签为基础,遍历所需要的信息
for li in lis:
    title = li.css(	.job-title-box div:nth-child(1)::attr(title)	).get()  # 标题
    city = li.css(	.job-dq-box .ellipsis-1::text	).get()  # 城市
    money = li.css(	.job-detail-header-box .job-salary::text	).get()  # 薪资
    tag_list = li.css(	.job-labels-box .labels-tag::text	).getall()  # 标签
    exp = tag_list[0]  # 经验要求
    edu = tag_list[1]  # 学历要求

    tag = 	,	.join(tag_list[2:])
    company_name = li.css(	pany-name::text	).get()  # 公司名称
    company_list = li.css(	pany-tags-box span::text	).getall()  # 公司标签
    company_tag = 	,	.join(company_list)
    href = li.css(	.job-detail-box a:nth-child(1)::attr(href)	).get()  # 详情页

, .join()用逗号把列表里面的元素合并成一个字符串数据

定义一个dit字典存放所需要的信息

    dit = {
        	标题	: title,
        	城市	: city,
        	薪资	: money,
        	经验要求	: exp,
        	学历要求	: edu,
        	职位标签	: tag,
        	公司名称	: company_name,
        	公司标签	: company_tag,
        	详情页	: href,
    }
8、将获得的数据进行保存
f = open(	招聘.csv	, mode=	a	, encoding=	utf-8	, newline=		)
css_write = csv.DictWriter(f, fieldnames=[
    	标题	,
    	城市	,
    	薪资	,
    	经验要求	,
    	学历要求	,
    	职位标签	,
    	公司名称	,
    	公司标签	,
    	详情页	,
])
css_write.writerow(dit)  # 写入表头
# 打印在python中显示
    print(title, city, money, exp, edu, tag, company_name, company_tag, href)
9、完整代码
import parsel
import requests
import csv

f = open(	招聘.csv	, mode=	a	, encoding=	utf-8	, newline=		)
css_write = csv.DictWriter(f, fieldnames=[
    	标题	,
    	城市	,
    	薪资	,
    	经验要求	,
    	学历要求	,
    	职位标签	,
    	公司名称	,
    	公司标签	,
    	详情页	,
])

url = 	https://www.liepin/zhaopin/	

data = {
    	inputFrom	: 	www_index	,
    	workYearCode	: 	0	,
    	key	: 	python	,
    	scene	: 	input	,
    	ckId	: 	kfpt1emhvkrshc9o4h2xquxd74pfihmb	,
}

headers = {
    	User-Agent	: 	Mozilla/5.0 (Windows T 10.0; Win64; x64) AppleWebKit/57.6 (KHTML, like Gecko) 	
                  	Chrome/99.0.4844.74 Safari/57.6 Edg/99.0.1150.46 	
}

respe = requests.get(url=url, headers=headers, params=data)

selector = parsel.Selector(respe.text)
# 把最大的标签提取出来
lis = selector.css(	.left-list-box .job-list-item	)

for li in lis:
    title = li.css(	.job-title-box div:nth-child(1)::attr(title)	).get()  # 标题
    city = li.css(	.job-dq-box .ellipsis-1::text	).get()  # 城市
    money = li.css(	.job-detail-header-box .job-salary::text	).get()  # 薪资
    tag_list = li.css(	.job-labels-box .labels-tag::text	).getall()  # 标签
    exp = tag_list[0]  # 经验要求
    edu = tag_list[1]  # 学历要求
    # 	,	.join()用逗号把列表里面的元素合并成一个字符串数据
    tag = 	,	.join(tag_list[2:])
    company_name = li.css(	pany-name::text	).get()  # 公司名称
    company_list = li.css(	pany-tags-box span::text	).getall()  # 公司标签
    company_tag = 	,	.join(company_list)
    href = li.css(	.job-detail-box a:nth-child(1)::attr(href)	).get()  # 详情页

    dit = {
        	标题	: title,
        	城市	: city,
        	薪资	: money,
        	经验要求	: exp,
        	学历要求	: edu,
        	职位标签	: tag,
        	公司名称	: company_name,
        	公司标签	: company_tag,
        	详情页	: href,
    }
    css_write.writerow(dit)  # 写入表头
    # 打印
    print(title, city, money, exp, edu, tag, company_name, company_tag, href)

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1116593.html

相关标签:无
上传时间: 2025-07-17 13:14:41
留言与评论(共有 14 条评论)
本站网友 记忆能力
14分钟前 发表
href
本站网友 工地上的女人
11分钟前 发表
本站网友 metis
29分钟前 发表
company_name
本站网友 金水宝
30分钟前 发表
学历要求
本站网友 十大童装品牌
3分钟前 发表
//www.liepin/zhaopin/
本站网友 新野租房
0秒前 发表
edu
本站网友 香港化妆品
4分钟前 发表
打开网站查信息 进入后搜索想要爬取的岗位信息,右键选择 “检查” 进入开发者界面 点击右上角的network,选择doc 然后点击图中的搜索按钮,输入想要爬取的岗位名称,然后刷新页面,选择搜索下边的第二个 这个时候我们看到有我们需要的url,从中也可知网站的请求方式为get请求,我们也得用get请求! 部分代码解析: 1
本站网友 昆明男科医院
6分钟前 发表
0
本站网友 世界名园
15分钟前 发表
money
本站网友 小客车指标办
18分钟前 发表
定义data放我们的参数 这个是网页中payload的参数,也就是url中问号后面的参数 data = { inputFrom
本站网友 更名
7分钟前 发表
将获得的数据进行保存 f = open( 招聘.csv
本站网友 好消息
24分钟前 发表
input
本站网友 盐酸氟桂利嗪胶囊
12分钟前 发表
text ).get() # 城市 money = li.css( .job-detail-header-box .job-salary