python爬蟲模擬登入CSDN

2021-04-20 14:00:01

目錄

先上效果

頁面分析

引入selenium模組及驅動

1、並將安裝好的Chromedriver.exe引入到程式碼中

2、瀏覽器驅動引入

爬蟲模擬登入

1、設定網址連結

2、切換到賬號密碼登入

3、找到使用者名稱密碼的控制元件ID

4、注入使用者名稱和密碼

5、模擬登入點選

成功登入CSDN


先上效果

頁面分析

CSDN登入頁面如下圖

引入selenium模組及驅動

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、瀏覽器驅動引入

驅動下載地址:

https://download.csdn.net/download/weixin_42350212/14983610

將驅動下載後,複製chromedriver.exe 到谷歌瀏覽器的安裝路徑下,與Chrome.exe啟動檔案並列的目錄下:

爬蟲模擬登入

1、設定網址連結

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

2、切換到賬號密碼登入

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

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

3、找到使用者名稱密碼的控制元件ID

4、注入使用者名稱和密碼

根據頁面程式碼分析,獲得使用者名稱的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")

5、模擬登入點選

分析頁面結構,模擬點選登入按鈕。

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

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

成功登入CSDN

完整程式碼

# -*- coding:utf-8 -*-
from selenium import webdriver  
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()

歡迎關注公眾號:hacklex  提供各種資源下載。