最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3+selenium實現(xiàn)cookie免密登錄的示例代碼

 更新時間:2020年03月18日 12:00:46   作者:不努力,誰會可憐你?  
這篇文章主要介紹了Python3+selenium實現(xiàn)cookie免密登錄的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

進過兩天的研究終于實現(xiàn)了cookie的免密登錄,其實就是session。特別開心,因為在Python爬蟲群里問那些大佬,可是他們的回答令我寒心,自己琢磨?。。?/p>

靠誰比如靠自己,為此我總結(jié)下經(jīng)驗,以免入門的小白再次踩這樣的吭。其實網(wǎng)上很多博客寫的都比較不詳細甚

首先問題自己思考,不懂得去群里問問,然后最重要的要理解事物的本質(zhì),只有理解后才能運用它;最后在百度一下把所有相關的博客都點開,一條一條的看一遍總結(jié)下規(guī)律,比較嘍的就舍棄,這樣基本上都能得到啟發(fā)作用。比如selenium的本質(zhì)就是操作瀏覽器的,那么操作cookie也是操作瀏覽器的,并且用selenium打開瀏覽器時什么都沒有,如果進入某個網(wǎng)站就會生成cookie先關信息。等待,那么我們可以用selenium打開網(wǎng)站之后讓他清除所有cookie避免干擾,然后睡眠20秒以便等我們登陸,這是就會產(chǎn)生cookie,我們將它獲取下來就可以實現(xiàn)登陸了。

下面直接上代碼:

# 登錄
def login_jd():
  # 登錄前清除所有cookie
  browser.get('https://www.baidu.com/')
  browser.delete_all_cookies()
 
  # 打印登錄前的cookie
  cookieBefore = browser.get_cookies()
  print(cookieBefore)
 
  print("------------------------------------------------------------------------")
  time.sleep(2)
  list_cookies = [
    {'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '1420_21120_29074_29237_2518_2909_29134_2832_28585_26350_2913'},
    {'domain': '.baidu.com', 'expiry': 159184274.325927, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': 'FF789623EA1785FF0D55ED0401D057B2:FG=1'},
    {'domain': 'www.baidu.com', 'expiry': 1563289, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '123143'},
    {'domain': '.baidu.com', 'expiry': 1560354688.892916, 'httpOnly': False, 'name': 'BDORZ', 'path': '/', 'secure': False, 'value': 'B490B5BF6F3CD40255D22BCDA1598'},
    {'domain': '.baidu.com', 'expiry': 1819468287.471656, 'httpOnly': True, 'name': 'BDUSS', 'path': '/', 'secure': False, 'value': 'tGem1JzblNpOa1VVek0yLThmbWR6RxENWZtcVNwUThpT2hCLTVsUFBQUFBJCQAAAAAAAAAAAEAAAA4MdBAd3d3d2dnZ2dnZWVlZWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALkI~1y5CP9cVm'},
    {'domain': '.baidu.com', 'expiry': 2569420288, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'secure': False, 'value': '587A2695FCD6D043A5FE5139E4F'},
    {'domain': '.baidu.com', 'expiry': 3707755.819949, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'secure': False, 'value': '156027786'},
    {'domain': 'www.baidu.com', 'httpOnly': False, 'name': 'BD_HOME', 'path': '/', 'secure': False, 'value': '1'}
  ]
 
  # 獲取之后的cookie
  cookies = browser.get_cookies()
  print(browser.get_cookies())
 
  # 將獲取的的所有cookies添加到瀏覽器
  for cookie in list_cookies:
    browser.add_cookie(cookie)
    print(cookie)
  time.sleep(2)
  # 刷新頁面即可更新cookie
  browser.refresh()
  time.sleep(505)
  browser.quit()

示例二:

首先使用用戶名和賬號,登錄獲取cookie

import json
import time
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
 
 
class Crawler():
  def gather():
    chrome_options = Options()
    chrome_options.add_argument("window-size=1024,768")
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='C:\devtool\Anaconda\Scripts\chromedriver')
    wait = WebDriverWait(driver, 1)
    ##登錄百度知道
    logurl = 'https://zhidao.baidu.com/'
    #登錄前清楚所有cookie
    driver.delete_all_cookies()
    driver.get(logurl)
    ##登錄前打印cookie
    print(driver.get_cookies())
 
    ##點擊登錄按鈕
    driver.find_element_by_xpath('//*[@id="userbar-login"]').click()
    # driver.find_element_by_id("userbar-login").click()
    time.sleep(2)
    ##首次嘗試的 默認進入掃碼登錄的界面
    try:
      footerULoginBtn = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__footerULoginBtn"]')
      footerULoginBtn.click() #切換到用戶名和密碼登錄
      footerULoginBtn_not_exist = False
    except:
      footerULoginBtn_not_exist = True
 
    ## 用戶名跟密碼的設置并點擊提交
    user = driver.find_element_by_name('userName')
    user.clear()
    pwd = driver.find_element_by_name('password')
    pwd.clear()
    submit = driver.find_element_by_id('TANGRAM__PSP_10__submit')
    time.sleep(2)
    user.send_keys('用戶名')
    pwd.send_keys('密碼')
    time.sleep(1)
    submit.click()
    time.sleep(1)
    ## 發(fā)送手機驗證碼 驗證
    ##點擊發(fā)送按鈕
    ###是否需要輸入手機驗證碼
    try:
      driver.find_element_by_xpath('//*[@id="TANGRAM__28__button_send_mobile"]').click()
      time.sleep(10)
      ##使用shell交互式,接受驗證碼
      message = input("Tell me the captcha: ")
      ##輸入驗證碼
      captcha = driver.find_element_by_xpath('//*[@id="TANGRAM__28__input_label_vcode"]')
      time.sleep(1)
      captcha.send_keys(message)
      time.sleep(1)
      ##點擊提交
      driver.find_element_by_xpath('//*[@id="TANGRAM__28__button_submit"]').click()
      time.sleep(3)
    except:
      time.sleep(1)
 
    ### 獲取cookie
    cookie = driver.get_cookies()
    print(cookie)
    jsonCookies = json.dumps(cookie)
    with open('vcyber.json', 'w') as f:
      f.write(jsonCookies)
 
    time.sleep(30)
 
Crawler.gather()

獲取cookie后,可以不用輸入密碼登錄

import json
import time
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
 
 
class Crawler():
  def gather():
    chrome_options = Options()
 
    chrome_options.add_argument("window-size=1024,768")
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='C:\devtool\Anaconda\Scripts\chromedriver')
    wait = WebDriverWait(driver, 1)
 
    ##登錄百度知道
    logurl = 'https://zhidao.baidu.com/'
 
    #登錄前清楚所有cookie
    driver.delete_all_cookies()
    driver.get(logurl)
 
    f1 = open('vcyber.json')
    cookie = f1.read()
    cookie = json.loads(cookie)
    for c in cookie:
      driver.add_cookie(c)
    # # 刷新頁面
    driver.refresh()
 
Crawler.gather()

到此這篇關于Python3+selenium實現(xiàn)cookie免密登錄的示例代碼的文章就介紹到這了,更多相關selenium cookie免密登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python3中的列表,元組,字典,字符串相關知識小結(jié)

    Python3中的列表,元組,字典,字符串相關知識小結(jié)

    這篇文章主要介紹了Python3中的列表,元組,字典,字符串相關知識小結(jié),小編覺得挺不錯的,分享給大家,需要的朋友可以參考下。
    2017-11-11
  • python設計模式之裝飾器模式

    python設計模式之裝飾器模式

    這篇文章主要介紹了python設計模式之裝飾器模式,文章基于python得設計模式資料展開飾器模式得詳細資料,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 使用Eclipse如何開發(fā)python腳本

    使用Eclipse如何開發(fā)python腳本

    這篇文章主要為大家詳細介紹了使用Eclipse開發(fā)python腳本的相關方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 如何通過python實現(xiàn)IOU計算代碼實例

    如何通過python實現(xiàn)IOU計算代碼實例

    這篇文章主要介紹了如何通過python實現(xiàn)IOU計算代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python元類的進階應用深度探索

    Python元類的進階應用深度探索

    這篇文章主要介紹了Python元類的進階應用深度探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Python中的代碼異常處理你掌握了嗎

    Python中的代碼異常處理你掌握了嗎

    Python?使用稱為異常(exception)的特殊對象來管理程序執(zhí)行期間發(fā)生的錯誤,那Python中代碼異常處理的相關操作你都了解了嗎,本文為大家進行了詳細整理,需要的可以參考下
    2023-06-06
  • python?(pyqt)?表格顯示圖片的實現(xiàn)方式

    python?(pyqt)?表格顯示圖片的實現(xiàn)方式

    這篇文章主要介紹了python?(pyqt)?表格顯示圖片的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python自動化之如何利用allure生成測試報告

    python自動化之如何利用allure生成測試報告

    這篇文章主要給大家介紹了關于python自動化之如何利用allure生成測試報告的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 編寫Python CGI腳本的教程

    編寫Python CGI腳本的教程

    這篇文章主要介紹了編寫Python CGI腳本的教程,CGI是Python和服務器軟件連接的接口,需要的朋友可以參考下
    2015-06-06
  • python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解

    python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解

    下面小編就為大家分享一篇python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

福清市| 淮阳县| 迁西县| 巴彦淖尔市| 东阿县| 门头沟区| 紫金县| 沧州市| 海口市| 苏州市| 泸州市| 准格尔旗| 修文县| 龙胜| 阜宁县| 龙门县| 奇台县| 磐石市| 古浪县| 藁城市| 庆城县| 新田县| 金门县| 襄樊市| 茂名市| 九龙坡区| 吉木萨尔县| 南雄市| 山东省| 尤溪县| 鱼台县| 红安县| 万全县| 资溪县| 临清市| 沙田区| 平邑县| 大丰市| 葫芦岛市| 霍城县| 青冈县|