python爬取招聘网信息并保存为csv文件
python爬取招聘网信息并保存为csv文件
我们以猎聘网为例
一、打开网站查信息
进入后搜索想要爬取的岗位信息,右键选择 “检查” 进入开发者界面
点击右上角的network,选择doc 然后点击图中的搜索按钮,输入想要爬取的岗位名称,然后刷
我们以猎聘网为例
一、打开网站查信息
进入后搜索想要爬取的岗位信息,右键选择 “检查” 进入开发者界面
点击右上角的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组装电脑配置单推荐报价格
上传时间: 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 |