python爬蟲之利用selenium模塊自動登錄CSDN

一、頁面分析

CSDN登錄頁面如下圖

二、引入selenium模塊及驅動

2.1 並將安裝好的Chromedriver.exe引入到代碼中

# -*- coding:utf-8 -*-
from selenium import webdriver  
import os
import time
#引入chromedriver.exe
chromedriver="C:/Users/lex/AppData/Local/Google/Chrome/Application/chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)

2.2 瀏覽器驅動引入

將驅動下載後,復制chromedriver.exe 到谷歌瀏覽器的安裝路徑下,與Chrome.exe啟動文件並列的目錄下:

三、爬蟲模擬登錄

3.1 設置網址鏈接

#設置瀏覽器需要打開的url
url = "https://passport.csdn.net/login?code=public"  
browser.get(url)

3.2 切換到賬號密碼登錄

使用selenium模擬點擊 賬號密碼登錄的選項

#使用selenium選擇 賬號登錄按鈕
browser.find_element_by_link_text("賬號密碼登錄").click()

3.3 找到用戶名密碼的控件ID

3.4 註入用戶名和密碼

根據頁面代碼分析,獲得用戶名的id屬性為all,密碼的id屬性為password-number

使用python代碼,註入用戶名密碼

browser.find_element_by_id("all").clear()
browser.find_element_by_id("all").send_keys("[email protected]")
time.sleep(2)
browser.find_element_by_id("password-number").clear()
browser.find_element_by_id("password-number").send_keys("1212121212")

3.5 模擬登錄點擊

分析頁面結構,模擬點擊登錄按鈕。

分析可獲得,登錄按鈕的class屬性為btn btn-primary,根據class來鎖定該按鈕

time.sleep(1)
#增加一秒鐘的時間間隔
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

四、成功登錄CSDN

五、完整代碼

# -*- coding:utf-8 -*-
import os
import time
from selenium import webdriver # 從selenium導入webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import json
import time
#引入chromedriver.exe
chromedriver="C:/Users/lex/AppData/Local/Google/Chrome/Application/chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)
#設置瀏覽器需要打開的url
url = "https://passport.csdn.net/login?code=public"  
browser.get(url)
browser.find_element_by_link_text("賬號密碼登錄").click()
browser.find_element_by_id("all").clear()
browser.find_element_by_id("all").send_keys("你的郵箱地址")
time.sleep(1)
browser.find_element_by_id("password-number").clear()
browser.find_element_by_id("password-number").send_keys("你的登錄密碼")
time.sleep(1)
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

到此這篇關於python爬蟲之利用selenium模塊自動登錄CSDN的文章就介紹到這瞭,更多相關python自動登錄CSDN內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀:

    None Found