用python抓取智联招聘信息并存入excel
tags:python 智联招聘导出excel
引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步作出调整。建议不要看到身边的人涨了工资就盲目的心动。一般来说跳槽后要熟悉新的环境会浪费不少时间,如果现在的工作在氛围和自身进步上还可以接受,其他比如待遇方面可以和公司协调解决。
本文参考了yaoyefengchen的博客:文章链接,并进行了地域搜索优化和将存储方式由cvs改成大家常用的excel。下面进入正文
先说一下大概流程:
在智联职位搜索页面上选好自己的搜索条件后,发现链接地址为:
http://sou.zhaopin.com/jobs/searchresult.ashx?jl=北京&kw=php高级工程师&sm=0&re=2006&isfilter=1&p=1&sf=10001&st=15000
分析链接中的参数如下(过滤条件可以选择不写),并构造出请求的数据,header的设置只要可以访问网页即可。
paras = {
'jl': city, # 搜索城市
'kw': keyword, # 搜索关键词
'isadv': 0, # 是否打开更详细搜索选项
'isfilter': 1, # 是否对结果过滤
'p': page, # 页数
're': region # region的缩写,地区,2005代表海淀
}
# sf=10001&st=15000这两个是我筛选的工资区间,如果有这个需求可以自己添加参数。
url = 'https://sou.zhaopin.com/jobs/searchresult.ashx?' + urlencode(paras)
yaoyefengchen用的是正则匹配出职位,薪资,公司等信息,并没有提供具体地域(比如海淀还是朝阳)对应的region。我后来是用的xpath提取出了北京的各个地域组成字典,直接输入地区的汉字就可以了。如下:
# 取搜索页面得到地域的对应数字 比如海淀对应2005
def parseHtmlToGetRegion(regionAddress):
url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=北京&sm=0&isfilter=1&p=1&re=2006'
# 获取代理ip地址 只取前五页
html= getHtml(url)
regionId = html.xpath('/html/body/div[3]/div[3]/div[1]/div[4]/div[1]/div[2]/a/@href')
region = html.xpath('/html/body/div[3]/div[3]/div[1]/div[4]/div[1]/div[2]/a/text()')
#解析一下region中的编号去掉无效内容
regionList = {}
for i,regionHref in enumerate(regionId):
if i==0:
continue
regionList[region[i]] = regionId[i][-4::]
return regionList.get(regionAddress)
另外,cvs格式在用一些工具比如excel打开的时候经常出现乱码,需要转化或者下载一些专用的软件。我觉得很不方便,所以直接存成了excel格式,不得不说,在存数据到excel文件这方面&#x