问题描述
从前程无忧网站:https://www.51job.com/上查询热点城市(北京、上海、广州、深圳、武汉、西安、杭州、南京、成都、苏州)程序员的招聘信息。要求在Excel文件中保存招聘信息(职位名、公司名、工作地点、薪资、发布时间),每个城市一工作表,统计出每个城市招聘职位总数,并按从高到低顺序排序,输出到Excel的一个工作表中,并画出各城市招聘职位数分圆饼图。

广州程序员信息

from lxml import etree
import requests
import csv
temp='C:\\Users\\lenovo\\Desktop'+'\\'+'广州程序员工作'
with open(temp+'.csv','a',newline='') as f:csvwriter=csv.writer(f,dialect='excel')csvwriter.writerow(['职位','公司名称','地址','薪水','发布日期'])
headers = {"cache-control": "no-cache","postman-token": "72a56deb-825e-3ac3-dd61-4f77c4cbb4d8","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36",}
#广州程序员工作的页数
for i in range(1,12):#网址url='https://search.51job.com/list/030200,000000,0000,00,9,99,%25E7%25A8%258B%25E5%25BA%258F%25E5%2591%2598,2,{}.html?'.format(i)  respond = requests.get(url,headers=headers)respond.encoding='gbk'respond1=respond.texthtml=etree.HTML(respond1)work_name=html.xpath('//div[@id="resultList"]/div[@class="el"]/p/span/a/@title')company_name=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t2"]/a/@title')work_place=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t3"]/text()')salary=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t4"]/text()')date=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t5"]/text()')for a,b,c,d,e in zip(work_name,company_name,work_place,salary,date):print(a,b,c,d,e)with open(temp+'.csv','a',newline='') as f:csvwriter=csv.writer(f,dialect='excel')csvwriter.writerow([a,b,c,d,e])


爬取其他几个城市程序员工作的代码与此类此,只需将城市名称,页数和网址更换即可,在此不一一列举。
以下代码是将各个城市程序员工作数目统计到一张表格中。并绘制圆饼图和条形统计图。

import pandas as pd
import matplotlib.pyplot as plt
import csv
temp='C:\\Users\\lenovo\\Desktop'+'\\'+'热门城市程序员工作数目统计'
with open(temp+'.csv','a',newline='') as f:csvwriter=csv.writer(f,dialect='excel')csvwriter.writerow(['城市','工作数目'])
guangnumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\广州程序员工作.csv'),sep=',')
beinumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\北京程序员工作.csv'),sep=',')
shangnumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\上海程序员工作.csv'),sep=',')
shengnumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\深圳程序员工作.csv'),sep=',')
wunumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\武汉程序员工作.csv'),sep=',')
xinumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\西安程序员工作.csv'),sep=',')
hangnumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\杭州程序员工作.csv'),sep=',')
nannumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\南京程序员工作.csv'),sep=',')
chengnumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\成都程序员工作.csv'),sep=',')
sunumber=pd.read_csv(open(r'C:\Users\lenovo\Desktop\Python爬虫\苏州程序员工作.csv'),sep=',')
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
dic={'广州':len(guangnumber),'北京':len(beinumber),'上海':len(shangnumber),'深圳':len(shengnumber),'武汉':len(wunumber),'西安':len(xinumber),'杭州':len(hangnumber),'南京':len(nannumber),'成都':len(chengnumber),'苏州':len(sunumber)}
dict=sorted(dic.items(),key=lambdax:x[1],reverse=True)
name=[]
number=[]
for key,value in dict:name.append(key)number.append(value)with open(temp+'.csv','a',newline='') as f:csvwriter=csv.writer(f,dialect='excel')csvwriter.writerow([key,value])
sum=0
numbers=[]
for i in number:sum+=i
for i in number:numbers.append(i/sum)
plt.xlabel('热门城市')
plt.ylabel('程序员工作数目')
plt.title('热门城市程序员工作数目统计')
plt.bar(range(len(name)),number,tick_label=name)
plt.show()
figl,axl=plt.subplots()   #图版
axl.pie(numbers,labels=name,autopct="%1.1f%%",shadow=True) #autopct自动分配颜色
axl.axis('equal')  #进行美化处理
plt.title('热门城市程序员工作分布圆饼图')
plt.show()

以下是效果图:

python爬取前程无忧热门城市职位信息相关推荐

  1. 爬取前程无忧51job海量职位信息

    准备阶段 前程无忧官网:https://www.51job.com/ 本文对职位的爬取以python职位为例. 现在网站的反爬措施比较强,但可以用selenium进行爬取,虽然速度相对较慢但是爬取的方 ...

  2. python爬取拉勾网给定关键词职位信息存入数据库_Python 爬取拉勾网python职位信息...

    今天的任务是爬取拉勾网的职位信息. 首先,我们进入拉勾网,然后在职位搜索栏搜索Python 的同时,打开控制面板F12,来查看网页构成. 在XHR里,可以清楚的看见Ajax请求,所以需要使用sessi ...

  3. python爬取智联招聘职位信息(单进程)

    我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息 没办法,用账号登录进去,登录后的网页如下: 输入职位名称点击搜索,显示如下网页: 把这个URL:https://s ...

  4. Python爬取智联招聘职位信息

    这是一次失败的尝试 , 事情是这样的-- 1.起因 前段时间刚刚学完爬虫,于是准备找个项目练练手.因为想要了解一下"数据挖掘"的职位招聘现状,所以我打算对'智联招聘'下手了.网上当 ...

  5. python爬取前程无忧职位信息

    欢迎关注我的微信公众号:AI进阶者,每天分享技术干货 相信很多小伙伴都面临找工作的问题,本人目前正在魔都读研,也面临明年春招找实习秋招找工作等一系列问题,由于本人的专业为机械专业,结合今年的就业状况( ...

  6. python爬取前程无忧当日的全部招聘信息

    用了几天时间写成的爬取前程无忧的当日的招聘信息,通过多线程的方式同时爬取多个城市的信息,作为资料保存下来,一下是完整代码,可以直接复制粘贴爬取 这里爬取的数据条件是是24小时内,周末双休的,会在当前文 ...

  7. python爬取微博热门消息(三)—— 爬取微博热门信息的功能函数

    微博的热搜榜对于研究大众的流量有非常大的价值. 今天的教程就来说说如何爬取微博的热搜榜. 感兴趣的小伙伴可以 收藏 + 关注 哦! 另外,关于本项目的效果展示,以及教程,点击一下链接即可. pytho ...

  8. python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析

    原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...

  9. python爬取58同城的兼职信息

    标题python爬取58同城的兼职信息 刚刚开始学习爬虫,一些 自己研究的小东西,爬取58同城上面的兼职信息放入Excel表格里,具体代码解释在代码里给出注释,下面给出完整代码: #首先是导包 imp ...

最新文章

  1. 【蓝桥java】进制与整除之最大公约数 最小公倍数
  2. spring mvc mysql配置_spring mvc配置数据库连接
  3. Programming WCF Services翻译笔记(四)
  4. 6 计算机应用技,2019年10月自考计算机应用技术习题及答案6
  5. labview项目实例_labview操作者框架
  6. MFC:Socket编程—TCP服务端和多个客户端通信
  7. Java Web之会话管理二:Session
  8. centos 安装nodejs与vue手脚架安装
  9. 用计算机计算最大公因数,利用计算器求两个较大数的最大公约数的简便方法
  10. cactiez的monitor主机名乱码
  11. Qt 5.14.1 最新版下载
  12. html form表格采购单,【HTML】--- 列表、表格、form表单标签
  13. zabbix监控打印机并自动更新监控项
  14. python中的def是什么意思啊_等号上面有个def是什么意思?
  15. 电脑在桌面点击鼠标右键反应慢
  16. 你有多久没有体会过“饥饿”的感觉?写在袁隆平仙逝的第7天
  17. dash dock安装 to_手动安装 Dash to Dock Gnome 扩展
  18. 小白也能看懂的seaborn入门示例
  19. [转载]政治家的道德底线——谈李斯之死
  20. 常见的100个推广创意

热门文章

  1. tgz文件如何解压?
  2. 因为相信所以看见,既然看见注定坚信《9》
  3. 【Clemetine】基于判别分析的电信客户分类
  4. DateSerial 函数
  5. 阿宁的爬虫之旅----代理ip
  6. You辉编程_CSS3知识
  7. HDU 1248 寒冰王座 (完全背包)
  8. 1938年叶企孙给熊大缜的诗
  9. sublime Text3 格式化json
  10. 计算机品牌调查表excel,如何用excel统计的调查问卷