国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

如何使用selenium和requests組合實現登錄頁面

2020-02-15 21:27:41
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了如何使用selenium和requests組合實現登錄頁面,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、在這里selenium的作用

(1)模擬的登錄。

(2)獲取登錄成功之后的cookies

代碼

def start_login(self):  chrome_options = Options()  # 禁止圖片加載,禁止推送通知  prefs = {    "profile.default_content_setting_values": {      "images": 2    }, "profile.default_content_setting_values.notifications": 2  }  chrome_options.add_experimental_option("prefs", prefs)  if chrome_args().get("headless_flag") == "1":    chrome_options.add_argument(chrome_args().get("headless"))  chrome_options.add_argument(chrome_args().get("nogpu"))  chrome_options.add_argument(chrome_args().get("noinfobars"))  chrome_options.add_argument(chrome_args().get("max_windows"))  chrome_options.add_argument(self.Proxy_server)   driver = webdriver.Chrome(chrome_options=chrome_options)  try:    get_logger().info("start login.....")    try:      # login info      self.login_name = self.loginInfo.get("login_id")      self.password = aes_cbc_decrypt(self.loginInfo.get("login_pwd"))    except Exception:      get_logger().error("cant get login info,here are detals".format(traceback.format_exc()))    wait = WebDriverWait(driver, 30)    print(u"start login in")    driver.get(self.login_url)    try:      login_id = wait.until(        eccd.presence_of_element_located(          (By.XPATH, self.Id_xpath))      )      login_id.send_keys(self.login_name)      login_id.send_keys(Keys.ENTER)      password = wait.until(        eccd.presence_of_element_located(          (By.XPATH, self.pwd_xpath))      )      password.send_keys(self.password)      submit = wait.until(        eccd.presence_of_element_located(          (By.XPATH, self.login_btn_xpath))      )      submit.click()      # login signal      #判斷是否顯示 右上角是否顯示用戶名      login_ok = wait.until(        eccd.presence_of_element_located(          (By.XPATH, self.login_ok_xpath))      )      try:        #判斷登錄成功        if login_ok:          get_logger().info("get user name successful:"+u"{}".format(login_ok.text))          try:            get_weibo_info=driver.find_element_by_xpath(self.forward_home_page)          except:             driver.get(self.first_page)           forward_home_page_ok = wait.until(             eccd.presence_of_element_located(               (By.XPATH, self.forward_home_page))           )          forward_home_page_ok.click()          time.sleep(5)          self.first_page=driver.current_url          get_logger().info("get homepage successful,url is {}".format(driver.current_url))          cookies = driver.get_cookies() # 導出cookie          get_logger().info("get cookies")          get_fansnum_ok= wait.until(              eccd.presence_of_element_located(                (By.XPATH, self.follow_xpath))          )          self.get_followfanshome(driver)          get_logger().info("get_followfanshome ok")          self.home_page_source=driver.page_source          driver.close() # 關閉chrome          #獲取主頁的          # 如果需要保存cookies          self.write_cookie(cookies)          get_logger().info("get cookies,login ok")          return cookies          else:          raise RuntimeError('login failed')      except:        get_logger().error("login failed")        return None     except:      if driver is not None:        driver.close()  except Exception as e:    if driver is not None:      driver.close()      get_logger().error("dbs operation error,here are details:{}".format(traceback.format_exc()))            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绩溪县| 根河市| 微山县| 清丰县| 河间市| 绿春县| 敦化市| 莎车县| 屯留县| 图们市| 铁岭市| 大丰市| 朝阳市| 宁夏| 临潭县| 资兴市| 荆门市| 锡林郭勒盟| 乐昌市| 大庆市| 佛学| 彭泽县| 黔东| 郸城县| 从化市| 沐川县| 依安县| 北海市| 澄江县| 天水市| 昔阳县| 和龙市| 左权县| 府谷县| 克拉玛依市| 柞水县| 尼勒克县| 东乌珠穆沁旗| 大港区| 调兵山市| 长兴县|