def set_login_params_Job51 (self) :
"""
51Job登录配置
2017-06-06 17:36
由于51Job的验证码是中文,所以这里仅仅采用chromeDriver打开Chrome浏览器,
自行在页面输入用户密码进行验证(60s内输入用户密码和验证码),然后程序通过定期访问页面来保持页面登录状态
:return:
"""
self.vipname = u"*************"
self.username = "*************"
self.password = "************"
self.login_url = 'http://ehire.51job.com/MainLogin.aspx'
self.open_url = 'http://ehire.51job.com/Jobs/JobSearchPost.aspx?IsHis=N'
self.vcode_url = None
self.clickAccountLoginXpath=None
self.input_name_xpath=None
self.input_pwd_xpath = None
self.input_check_xpath = None
self.input_vcode_xpath =None
self.input_btn_xpath=None
def ChromeWebDriver (self) :
"""默认打开百度页面"""
executable_path='../spider/driver/chromedriver.exe'
self.driver=webdriver.Chrome(executable_path=executable_path)
self.driver.get('https://www.baidu.com/' )
self.driver.set_window_size(1366 ,768 )
return self.driver
def saveCookie (self) :
self.cookies = self.driver.get_cookies()
if self.cookies:
with open(self.cookiesFile, 'w' ) as f:
pickle.dump(self.cookies, f)
result = True
print '已将cookies对象写入文件 {0}...' .format(self.cookiesFile)
else :
print '登录失败'
result=False
return result
def UIloginJob51 (self) :
"""51Job Chrome界面登录"""
print '=' * 50
print '{0} 51Job Chrome界面登录...' .format(self.getCurrtime())
self.set_login_params_Job51()
self.ChromeWebDriver()
tryTime = 0
login = 'not ok'
while login != 'ok' :
tryTime += 1
self.driver.get(self.login_url)
vip_name = self.driver.find_element_by_xpath("""//input[@name="txtMemberNameCN"]""" )
user_name = self.driver.find_element_by_xpath("""//input[@name="txtUserNameCN"]""" )
pwd = self.driver.find_element_by_xpath("""//input[@name="txtPasswordCN"]""" )
vip_name.send_keys(self.vipname)
time.sleep(1 )
user_name.send_keys(self.username)
time.sleep(1 )
pwd.send_keys(self.password)
time.sleep(1 )
login = raw_input("确定已经登录请输入ok,否则随便输入\n" )
print '你输入了:{0}' .format(login)
if login == 'ok' :
print '{0} 登录成功,即将保存cookie...' .format(self.getCurrtime())
self.saveCookie()
else :
print '{0} 登录失败,输入用户密码登录,当前尝试登录{1}次...' .format(self.getCurrtime(), tryTime)
time.sleep(3 )
self.driver.close()