在智联招聘的首页我们根据关键字搜索相关职位,搜索结果页面中包含了该职位的个数,同时会显示第一页的岗位信息,以及各个公司开出的期望工资区间。有了这些信息,我们就可以使用PowerShell粗率地统计各个城市的.NET开发职位和平均工资。
如果某天你想去其它城市混了,这些数据还是非常有参考价值的。
废话不多说,直接看PowerShell脚本
Function Search-Position{ param( [string]$keyword, [string]$city) $url="http://sou.zhaopin.com/jobs/searchresult.ashx?jl=$city&kw=$keyword&p=1&isadv=0" $page=Invoke-RestMethod $url $AverageSalary = [regex]::Matches($page,'zwyx">(?<salary>.*)</td>') | foreach { $salary = $_.Groups['salary'].Value if($salary -ne '面议'){ Write-Debug $salary ($salary -split '-' | measure -Average ).Average } } | measure -Average | select -ExpandProperty Average $positonCount = [regex]::Match($page,'共<em>(?<positons>.*)</em>个职位满足条件').Groups['positons'].Value @{ PositonsCount=$positonCount AverageSalary=$AverageSalary } } '上海','杭州','南京','苏州','南昌','西安' | ForEach-Object{ $s= Search-Position -keyword '.net开发' -city $_ [PSCustomObject]@{ 城市=$_ 职位个数=$s.PositonsCount 平均市场薪资=[int]$s.AverageSalary } } | Format-Table
荔非苔注:
因为第三方网站的页面布局和HTML标签随时都有可能改动,我只能保证上面脚本在2016年5月11日运行正常。但是思路是不变的。
执行返回的结果为:
城市 职位个数 平均市场薪资 -- ---- ------ 上海 1370 12182 杭州 397 10035 南京 245 7112 苏州 217 8563 南昌 42 5847 西安 273 6726
把这些数据塞到Excel表格中,弄成图表就更清晰了。
本文链接: https://www.pstips.net/dotnet-salary-in-each-city.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
Invoke-RestMethod是powershell3.0和之后的版本才有的吧,老版本针对从ie页面提取信息有什么好一点的替代方法吗?
谢谢!
赞!!!