我爬取了爬虫岗位薪资,分析后发现爬虫真香

人生处万类,知识最为贤。这篇文章主要讲述我爬取了爬虫岗位薪资,分析后发现爬虫真香相关的知识,希望能为你提供帮助。
【我爬取了爬虫岗位薪资,分析后发现爬虫真香】闲着无事逛逛招聘网站,无意看到了爬虫岗位的薪资,发现真香,今天决定爬取下来并进行分析
目录首先,确定目标网站:

https://jobs.51job.com/pachongkaifa

1.开始打开pycharm,新建文件-> 导入必备的库-> 加入常用的请求头header
# 导入requests包 import requests from lxml import etree # 网页链接 url = "https://jobs.51job.com/pachongkaifa/p1/" # 请求头 headers = { "Accept": "text/html,application/xhtml+xml,application/xml; q=0.9,image/avif,image/webp,image/apng,*/*; q=0.8,application/signed-exchange; v=b3; q=0.9", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh; q=0.9", "Connection": "keep-alive", "Cookie": "guid=7e8a970a750a4e74ce237e74ba72856b; partner=blog_csdn_net", "Host": "jobs.51job.com", "Sec-Fetch-Dest": "document", "Sec-Fetch-Mode": "navigate", "Sec-Fetch-Site": "none", "Sec-Fetch-User": "?1", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" }

2.分析目标网站的标签,发现想要的字段(岗位、公司名称、城市、薪资)都在p标签里面,如下图
< p class="info">

我爬取了爬虫岗位薪资,分析后发现爬虫真香

文章图片

3.开始编写代码先通过request请求网页,防止中文乱码,进行gbk的编码(如果不设置则会出现乱码)
res = requests.get(url=url, headers=headers) res.encoding=\'gbk\' s = res.text

接着进行解析网页,获取想要的内容
selector = etree.HTML(s) for item in selector.xpath(\'/html/body/div[4]/div[2]/div[1]/div/div\'): title = item.xpath(\'.//p/span[@class="title"]/a/text()\') name = item.xpath(\'.//p/a/@title\') location_name = item.xpath(\'.//p/span[@class="location name"]/text()\') sary = item.xpath(\'.//p/span[@class="location"]/text()\') time = item.xpath(\'.//p/span[@class="time"]/text()\') if len(title)> 0: print(title) print(name) print(location_name) print(sary) print(time) print("-----------")

最后出现运行后,结果如下:
我爬取了爬虫岗位薪资,分析后发现爬虫真香

文章图片

4.存储到csv文件为了方便下一步我们对数据进行分析,我将爬取下来的数据存储到csv文件
导入需要的库包
import csv import codecs

创建csv文件,并设置为追加写模式
f = codecs.open(\'爬虫工程师岗位薪资.csv\',\'a\',\'gbk\') writer = csv.writer(f) writer.writerow(["岗位","公司","城市","薪资"])

在爬取文件的时候将爬取的内容循环写入csv
writer.writerow([title[0]+"",name[0]+"",location_name[0]+"",sary[0]+""])

保存好的csv数据如下:
我爬取了爬虫岗位薪资,分析后发现爬虫真香

文章图片

5.分析数据并进行可视化从csv中读取爬取好的数据
with open(\'爬虫工程师岗位薪资.csv\',\'r\',encoding = \'gbk\') as fp: reader = csv.reader(fp) for row in reader: #岗位 title_list.append(row[0]) #城市 city_list.append(row[2][0:2]) #薪资分布 sary = row[3].split("-") if(len(sary)==2): try: sary = sary[1].replace("/月","") if "万" in sary: sary = sary.replace("万","") sary = int(sary) sary = sary*10000 sary_list.append(sary) if "千" in sary: sary = sary.replace("千","") sary = int(sary) sary = sary * 1000 sary_list.append(sary) except: pass

这里用了三个集合来存储系统分析的内容(岗位、城市、薪资分布)
#岗位 title_list=[] #城市 city_list=[] #薪资分布 sary_list=[]

由于薪资是1万/月、2万/月,为了转为10000、20000,则需要进行相应的处理。
开始分析了
5.1.可视化1:爬虫岗位常用名称
dict_x = {} for item in title_list: dict_x[item] = title_list.count(item) sorted_x = sorted(dict_x.items(), key=operator.itemgetter(1), reverse=True) k_list = [] v_list = [] for k, v in sorted_x[0:11]: k_list.append(k) v_list.append(v) plt.axes(aspect=1) plt.pie(x=v_list,labels= k_list,autopct=\'%0f%%\') plt.savefig("爬虫岗位常用名称.png", dpi=600) plt.show()

我爬取了爬虫岗位薪资,分析后发现爬虫真香

文章图片

从图中可以看出,大多数公司都需要用" 爬虫开发工程师" 这个词
5.2.可视化2:爬虫岗位最多的城市
dict_x = {} for item in city_list: dict_x[item] = city_list.count(item) sorted_x = sorted(dict_x.items(), key=operator.itemgetter(1), reverse=True) k_list = [] v_list = [] for k, v in sorted_x[0:11]: print(k, v) k_list.append(k) v_list.append(v)plt.bar(k_list,v_list, label=\'爬虫岗位最多的城市\') plt.legend() plt.xlabel(\'城市\') plt.ylabel(\'数量\') plt.title(u\'爬虫岗位最多的城市(李运辰)\') plt.savefig("爬虫岗位最多的城市.png", dpi=600) plt.show()

我爬取了爬虫岗位薪资,分析后发现爬虫真香

文章图片

从图中来看,大城市(北上广深)的爬虫工程师岗位居多
5.3.可视化3:薪资分布情况
dict_x = {} for item in sary_list: dict_x[item] = sary_list.count(item) sorted_x = sorted(dict_x.items(), key=operator.itemgetter(1), reverse=True) k_list = [] v_list = [] for k, v in sorted_x[0:15]: print(k, v) k_list.append(k) v_list.append(v) plt.axes(aspect=1) plt.title(u\'薪资分布情况(李运辰)\') plt.pie(x=v_list, labels=k_list, autopct=\'%0f%%\') plt.savefig("薪资分布情况.png", dpi=600) plt.show()

我爬取了爬虫岗位薪资,分析后发现爬虫真香

文章图片

我们可以发现,爬虫工程师的薪资在20000+以上的占大半数,尤其是20000左右的居多,看来爬虫岗位真是太香,你酸了吗,哈哈哈哈
data = https://www.songbingjia.com/android/pd.DataFrame({"value":sary_list}) cats1 = pd.cut(data[\'value\'].values, bins=[8000, 10000, 20000, 30000, 50000,data[\'value\'].max()+1]) pinshu = cats1.value_counts() pinshu_df = pd.DataFrame(pinshu, columns=[\'频数\']) pinshu_df[\'频率f\'] = pinshu_df / pinshu_df[\'频数\'].sum() pinshu_df[\'频率%\'] = pinshu_df[\'频率f\'].map(lambda x: \'%.2f%%\' % (x * 100)) pinshu_df[\'累计频率f\'] = pinshu_df[\'频率f\'].cumsum() pinshu_df[\'累计频率%\'] = pinshu_df[\'累计频率f\'].map(lambda x: \'%.4f%%\' % (x * 100)) print(pinshu_df) print() print("李运辰")

我爬取了爬虫岗位薪资,分析后发现爬虫真香

文章图片

从薪资范围来看,在10000-20000之间站大多数,基本很不错的薪资,大于20000+的很有一些,真是诱惑太大了
ok,今天的分享就到此结束了,我们下次再见

    推荐阅读