Skip to content

Commit 8f318b9

Browse files
committed
update bug
1 parent 0c102b2 commit 8f318b9

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

51job_xpath.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)