Python——获取工作薪资情况

举报
Vista_AX 发表于 2023/06/27 22:31:51 2023/06/27
【摘要】 Python——获取工作薪资情况

00 前情提要

临近毕业,相信大家都在找工作。而工作的薪酬,毫无疑问是我们关注的重点之一。这里,我简单编写了一个Python程序,用于获取目前市面上的工作薪酬情况。

01 实现背景

1、实习招聘网站——实习僧:https://www.shixiseng.com/,我们获取薪酬的数据来源

2、requests模块,用于http形式请求访问网页

3、BeautifulSoup模块,用于解析获取到的网页内容

4、反编译,通过逆推十六进制数字获取对应的阿拉伯数字


02 实现目标

首先利用requests模块获取实习僧网页源码,通过BeautifulSoup模块进一步筛选获得薪资内容


03 注意事项

1、源代码以python职位为例进行薪资搜索,如需搜索其他职位,可在源代码中自行替换对应关键词

resp = requests.get('https://www.shixiseng.com/interns?page={}&keyword=python'.format(page), headers = headers)

2、网站由于反爬虫机制,会经常替换十六进制编码对应的数据,若薪资数字出现乱码情况,需要自行重新逆推

3、如需将获取内容输入到本地文件,可自行利用with…open操作

04 实现代码

import requests
from  bs4  import BeautifulSoup

headers = {
	'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}


def detial_url(url):
	html = requests.get(url,headers = headers)
	soup = BeautifulSoup(html.text,'lxml')
	title = soup.title.text
	company_name = soup.select('.com_intro .com-name ')[0].text
	salary = soup.select('.job_money.cutom_font')[0].text.encode('utf-8')
	salary = salary.replace(b'\xef\x8e\x8d',b'0')
	salary = salary.replace(b'\xef\x8b\xbd',b'1')
	salary = salary.replace(b'\xee\x8f\xbf',b'2')
	salary = salary.replace(b'\xee\x96\x9a',b'3')
	salary = salary.replace(b'\xef\x81\xb2',b'4')
	salary = salary.replace(b'\xef\x8a\x83',b'5')
	salary = salary.replace(b'\xef\x8a\xa6',b'8')
	salary = salary.decode()
	print(title,company_name,salary)

def crawl():
	for page in range(1,5):
		resp = requests.get('https://www.shixiseng.com/interns?page={}&keyword=python'.format(page), headers = headers)
		html=resp.text
		soup =BeautifulSoup(html,'lxml')
		offers = soup.select('.intern-wrap.intern-item')
		for offer in offers:
			url = offer.select('.f-l.intern-detail__job a')[0]['href']
			detial_url(url)

crawl()



05 实现效果

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。