#!/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文件中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.