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 实现效果

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章