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