在智联招聘的首页我们根据关键字搜索相关职位,搜索结果页面中包含了该职位的个数,同时会显示第一页的岗位信息,以及各个公司开出的期望工资区间。有了这些信息,我们就可以使用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页面提取信息有什么好一点的替代方法吗?
(New-Object System.Net.WebClient).DownloadString("http://www.pstips.net")谢谢!
赞!!!