python爬蟲(chóng)之利用selenium模塊自動(dòng)登錄CSDN
一、頁(yè)面分析
CSDN登錄頁(yè)面如下圖

二、引入selenium模塊及驅(qū)動(dòng)
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 瀏覽器驅(qū)動(dòng)引入
將驅(qū)動(dòng)下載后,復(fù)制chromedriver.exe 到谷歌瀏覽器的安裝路徑下,與Chrome.exe啟動(dòng)文件并列的目錄下:

三、爬蟲(chóng)模擬登錄
3.1 設(shè)置網(wǎng)址鏈接
#設(shè)置瀏覽器需要打開(kāi)的url url = "https://passport.csdn.net/login?code=public" browser.get(url)
3.2 切換到賬號(hào)密碼登錄
使用selenium模擬點(diǎn)擊 賬號(hào)密碼登錄的選項(xiàng)
#使用selenium選擇 賬號(hào)登錄按鈕
browser.find_element_by_link_text("賬號(hào)密碼登錄").click()
3.3 找到用戶名密碼的控件ID

3.4 注入用戶名和密碼
根據(jù)頁(yè)面代碼分析,獲得用戶名的id屬性為all,密碼的id屬性為password-number
使用python代碼,注入用戶名密碼
browser.find_element_by_id("all").clear()
browser.find_element_by_id("all").send_keys("xxxx@gmail.com")
time.sleep(2)
browser.find_element_by_id("password-number").clear()
browser.find_element_by_id("password-number").send_keys("1212121212")

3.5 模擬登錄點(diǎn)擊
分析頁(yè)面結(jié)構(gòu),模擬點(diǎn)擊登錄按鈕。
分析可獲得,登錄按鈕的class屬性為btn btn-primary,根據(jù)class來(lái)鎖定該按鈕
time.sleep(1)
#增加一秒鐘的時(shí)間間隔
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

四、成功登錄CSDN

五、完整代碼
# -*- coding:utf-8 -*-
import os
import time
from selenium import webdriver # 從selenium導(dǎo)入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)
#設(shè)置瀏覽器需要打開(kāi)的url
url = "https://passport.csdn.net/login?code=public"
browser.get(url)
browser.find_element_by_link_text("賬號(hào)密碼登錄").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()
到此這篇關(guān)于python爬蟲(chóng)之利用selenium模塊自動(dòng)登錄CSDN的文章就介紹到這了,更多相關(guān)python自動(dòng)登錄CSDN內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python+opencv+selenium自動(dòng)化登錄郵箱并解決滑動(dòng)驗(yàn)證的問(wèn)題
- Python如何基于selenium實(shí)現(xiàn)自動(dòng)登錄博客園
- Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn))
- selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法
- Python使用selenium實(shí)現(xiàn)網(wǎng)頁(yè)用戶名 密碼 驗(yàn)證碼自動(dòng)登錄功能
- python內(nèi)置函數(shù)frozenset()的使用小結(jié)
- selenium+python實(shí)現(xiàn)自動(dòng)登錄腳本
- python+selenium實(shí)現(xiàn)登錄賬戶后自動(dòng)點(diǎn)擊的示例
- Python用selenium實(shí)現(xiàn)自動(dòng)登錄和下單的項(xiàng)目實(shí)戰(zhàn)
相關(guān)文章
python入門(mén)教程之基本算術(shù)運(yùn)算符
這篇文章主要給大家介紹了關(guān)于python入門(mén)教程之基本算術(shù)運(yùn)算符的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
利用python在Word文檔中創(chuàng)建和執(zhí)行條件郵件合并
郵件合并域和IF域是Word文檔中兩種非常實(shí)用的域,前者可以用來(lái)進(jìn)行郵件合并,根據(jù)數(shù)據(jù)批量創(chuàng)建定制的Word文檔,本文講介紹如何使用Python在Word文檔中創(chuàng)建條件郵件合并域以及執(zhí)行條件郵件合并,需要的朋友可以參考下2024-08-08
解決mnist數(shù)據(jù)集下載的相關(guān)問(wèn)題
這篇文章主要介紹了解決mnist數(shù)據(jù)集下載的相關(guān)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
利用Python繪制創(chuàng)意中秋節(jié)月餅
又是一年中秋至——花好月圓夜。turtle庫(kù)作為Python重要的標(biāo)準(zhǔn)庫(kù)之一,是最有價(jià)值的程序設(shè)計(jì)入門(mén)實(shí)踐庫(kù),它是程序設(shè)計(jì)入門(mén)層面最常用的基本繪圖庫(kù)。本文將使用turtle(海龜)來(lái)繪制中秋創(chuàng)意月餅,感興趣的可以了解一下2022-09-09
Python內(nèi)置debug庫(kù)pdb用法示例詳解
這篇文章主要介紹了Python內(nèi)置debug庫(kù)pdb用法的相關(guān)資料,Python的內(nèi)置調(diào)試器pdb可以有效幫助開(kāi)發(fā)者掌握程序執(zhí)行流程和變量狀態(tài),通過(guò)插入pdb.set_trace()設(shè)置斷點(diǎn),或直接從命令行啟動(dòng)pdb,可以進(jìn)入交互式調(diào)試模式,需要的朋友可以參考下2024-11-11
Python+Tensorflow+CNN實(shí)現(xiàn)車(chē)牌識(shí)別的示例代碼
這篇文章主要介紹了Python+Tensorflow+CNN實(shí)現(xiàn)車(chē)牌識(shí)別的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
一文搞懂???????python可迭代對(duì)象,迭代器,生成器,協(xié)程
這篇文章主要介紹了一文搞懂???????python可迭代對(duì)象,迭代器,生成器,協(xié)程,微博吱嘎部分圍繞主題展開(kāi)詳細(xì)介紹,需要的小伙伴可以參考一下2022-05-05
Python使用asyncio異步時(shí)的常見(jiàn)問(wèn)題總結(jié)
這篇文章主要為大家整理了開(kāi)發(fā)人員在?Python?中使用?asyncio?時(shí)提出的常見(jiàn)問(wèn)題以及解決方法,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2023-04-04

