#!/usr/bin/python
#-*-coding:UTF-8-*-
def SearchJob(City,Jobs):
import urllib,re,os,time,sys
#搜索主网址
UrlMainHtml='http://'+City+'.58.com/job/?key='+Jobs+'&final=1&jump=1'
MainHtmlRead=urllib.urlopen(UrlMainHtml).read()
#正则表达式获取搜索结果数量
ReResultCount=re.compile('<span class="operate_txt">共 <i>(.*?)</i> 条结果</span>')
if len(ReResultCount.findall(MainHtmlRead))>0:
ResultCount=ReResultCount.findall(MainHtmlRead)[0]
else:
print InputJob()
#正则表达式获取搜索结果总页数
RePageCount=re.compile('<span class="total_page">(.*?)</span>')
PageCount=int(RePageCount.findall(MainHtmlRead)[0])
#定义输出结果
JobOutput=''
#输出先前显示内容
print '共搜索到职位 '+ResultCount+' 条,共 '+str(PageCount)+' 页,以下是搜索结果,请稍候...'+\
'\n#############################################'
#获取各页内容
for Page in range(1,PageCount+1):
#搜索每一页
UrlPageHtml=UrlMainHtml.split('?')[0]+'pn'+str(Page)+'/?'\
+UrlMainHtml.split('?')[1]
PageHtmlRead=urllib.urlopen(UrlPageHtml).read()
#正则表达式获取当前页职位结果
ReJobCount=re.compile('<li class="job_item clearfix"(.*?)</li>')
JobCount=len(ReJobCount.findall(PageHtmlRead))
#获取每条结果
for Job in range(JobCount):
#获取当前职位信息
JobContent=ReJobCount.findall(PageHtmlRead)[Job]
#获取当前职位内容
ReJob_Content=re.compile('<span class=(.*?)</span>')
Job_Name=ReJob_Content.findall(JobContent)[1].replace('"name">','')
Job_Address=ReJob_Content.findall(JobContent)[0].replace('"address" > ','')\
.replace('"address yidi" data-text="','')\
.replace('" > ','/')
Job_Cate=ReJob_Content.findall(JobContent)[2].replace('"cate">','')
Job_Xueli=ReJob_Content.findall(JobContent)[3].replace('"xueli">','')
Job_Jingyan=ReJob_Content.findall(JobContent)[4].replace('"jingyan">','')
try:
Job_Sign=ReJob_Content.findall(JobContent)[5].replace('"sign">','')
except:
next
#获取当前职位工资
ReJob_Money=re.compile('<p class="job_salary">(.*?)</i>')
Job_Money=ReJob_Money.findall(JobContent)[0].replace('<i class="unit">','')
#获取当前岗位福利
ReJob_Welfare=re.compile('<div class="job_wel clearfix">(.*?) </div>')
if len(ReJob_Welfare.findall(JobContent))>0:
Job_Welfare=ReJob_Welfare.findall(JobContent)[0]\
.replace('</span> <span>','、')\
.replace(' <span>','')\
.replace('</span>','')
else:
Job_Welfare='未提供'
#获取当前职位发布公司
ReJob_Company=re.compile('title="(.*?)">')
Job_Company=ReJob_Company.findall(JobContent)[0]
#获取当前职位网址
ReJob_Url=re.compile('<a href="(.*?) target="_blank"')
Job_Url=ReJob_Url.findall(JobContent)[0].replace("'",'')
#输出结果
JobOutput=JobOutput+\
'\n职位名称:'+Job_Name+\
'\n岗位类别:'+Job_Cate+\
'\n所在区域:'+Job_Address+\
'\n最低学历:'+Job_Xueli+\
'\n工作经验:'+Job_Jingyan+\
'\n提供薪水:'+Job_Money+\
'\n岗位福利:'+Job_Welfare+\
'\n发布公司:'+Job_Company+\
'\n发布日期:'+Job_Sign+\
'\n职位链接:'+Job_Url+'\n'
print '执行进度:第 '+str(Page)+' 页已完成'
State=raw_input('全部内容已搜索完成,是否另存为txt文件(Y/N):')
if State=='Y' or State=='y':
#将搜索结果存入txt文件中
Path=os.getcwd()+'/['+City+']'+Jobs+'职位信息.txt'
FileName=open(Path,'w')
FileName.write(JobOutput)
FileName.close()
print '职位搜索已完成,txt文件保存至\n'+Path+'\n请及时查看'
return InputJob()
else:
return InputJob()
def InputJob():
print '\n#############################################'
City=raw_input('请输入查询城市的拼音:')
Job=raw_input('请输入查询职位的名称(中文):')
return SearchJob(City,Job)
print InputJob()
[Python2.7]爬58同城职位信息存入txt文件中
猜你喜欢
转载自blog.csdn.net/qq_18301257/article/details/79329545
今日推荐
周排行