国产探花免费观看_亚洲丰满少妇自慰呻吟_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()))            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛浦县| 元谋县| 仁布县| 平乐县| 涡阳县| 邹平县| 界首市| 佛冈县| 伽师县| 阿瓦提县| 综艺| 西藏| 腾冲县| 崇左市| 台江县| 南城县| 西乌珠穆沁旗| 临高县| 出国| 中阳县| 进贤县| 崇信县| 宁津县| 武威市| 大冶市| 博罗县| 尼木县| 安西县| 谢通门县| 新龙县| 平果县| 临泉县| 贡山| 弥勒县| 汝阳县| 华坪县| 紫云| 许昌县| 台南县| 甘南县| 烟台市|