@@ -39,13 +39,18 @@ def __findWebSite(self):
3939 self .__driver .find_element_by_xpath ('//*[@id="work_position_input"]' ).click ()
4040 time .sleep (1 )
4141 try :
42+ #定位当前地方
4243 self .__driver .find_element_by_xpath ('//*[@id="work_position_click_multiple_selected_each_050000"]/em' ).click ()
4344 except :
44- print ("您已设置为全国搜索了" )
45+ try :
46+ #可能帮你定到国外,这两种是常见的
47+ self .__driver .find_element_by_xpath ('//*[@id="work_position_click_multiple_selected_each_360000"]/em' ).click ()
48+ except :
49+ print ("您已设置为全国搜索了" )
4550 self .__driver .find_element_by_xpath ('//*[@id="work_position_click_bottom_save"]' ).click ()
4651 #开始搜索进入到搜索页面
4752 self .__driver .find_element_by_xpath ('/html/body/div[3]/div/div[1]/div/button' ).click ()
48- time .sleep (2 )
53+ time .sleep (1 )
4954
5055 #保存数据到excel中
5156 def __saveDataToExcel (self ,jobs ):
@@ -66,24 +71,32 @@ def __fitterField(self,title,address,name,salary,detail,site):
6671 jobs .append (name )
6772 salary = salary [0 ] if len (salary ) > 0 else ''
6873 jobs .append (salary )
69- detail = detail [ 0 ] if len (detail ) > 0 else ''
74+ detail = detail if len (detail ) > 0 else ''
7075 jobs .append (detail )
7176 site = site [0 ] if len (site ) > 0 else ''
7277 jobs .append (site )
73-
7478 return jobs
79+
7580 #工作简介职责
7681 def __getJobDetail (self ,site ):
7782 try :
7883 site = site [0 ] if len (site ) > 0 else ''
79- text = requests .get (site ,timeout = 2 ).text
80- selector = etree .HTML (text )
84+ res = requests .get (site ,timeout = 2 )
85+ res .encoding = 'gbk'
86+ selector = etree .HTML (res .text )
8187 #有时候是p标签组成的,有时候没有p标签
82- jobDetails = selector .xpath ('/html/body/div[3]/div[2]/div[3]/div[2]/div/text()' )
83- detail = jobDetails [0 ] if len (jobDetails ) > 0 else ''
88+ detail = ""
89+ ps = selector .xpath ('/html/body/div[3]/div[2]/div[3]/div[2]/p' )
90+ if ps is None :
91+ for p in ps :
92+ detail += p .xpath ('./text()' )[0 ]
93+ else :
94+ jobDetails = selector .xpath ('/html/body/div[3]/div[2]/div[3]/div[2]/div/text()' )
95+ for i in range (0 ,len (jobDetails )):
96+ detail += ("\n " + jobDetails [i ])
97+ return detail
8498 except :
85- detail = "暂无"
86- return detail
99+ return "暂无"
87100
88101 #获取51job上的数据
89102 def getData (self ,work = 'Python' ):
0 commit comments