利用selenium模擬登陸


第一部:利用selenium登陸

導入selenium庫

from selenium import webdriver

明確模擬瀏覽器在電腦中存放的位置,比如我存在當前目錄

chromePath = r'.\chromedriver.exe'

用selenium的webdriver方程指明瀏覽器的路徑,同時打開一個瀏覽器。模擬瀏覽器有多種可選,比如Firefox, Safari。本次用的是谷歌的模擬瀏覽器。注意:'.Chome'是大寫字母。

wd = webdriver.Chrome(executable_path= chromePath)

讓webdriver為你填寫用戶名和密碼

wd.find_element_by_xpath('用戶名選項卡位置').send_keys('用戶名')
wd.find_element_by_xpath('密碼選項卡位置').send_keys('密碼')

讓webdrive點擊登陸,若是按鈕就選擇用click(),若是表單就選擇submit()。

wd.find_element_by_xpath('登陸按鈕所在位置').click() #若是按鈕
wd.find_element_by_xpath('登陸按鈕所在位置').submit() #若是表單

登陸完成,所有的cookies現在都存在了'wd'里面,可隨時調用。

第二部:將selenium的cookies傳入requests

導入requests庫,並構建Session()

import reqeusts
req = requests.Session()

從‘wd'里調出cookies

cookies = wd.get_cookies()

將selenium形式的cookies轉換為requests可用的cookies。

for cookie in cookies:
        req.cookies.set(cookie['name'],cookie['value'])

通過上述方法可以說是萬能的登錄方法,重點注意的是一定要下載谷歌模擬器chromedriver.exe。

全部代碼:

# encoding=utf8 
'''
解決中文亂碼
'''
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')


import requests
from selenium import webdriver
chromePath = r'.\chromedriver.exe'
wd = webdriver.Chrome(executable_path= chromePath) #構建瀏覽器
loginUrl = 'http://www.weibo.com/login.php' 
wd.get(loginUrl) #進入登陸界面
wd.find_element_by_xpath('//*[@id="loginname"]').send_keys('xxxxx') #輸入用戶名
wd.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input').send_keys('xxxxx') #輸入密碼
wd.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[6]/a').click() #點擊登陸
req = requests.Session() #構建Session
cookies = wd.get_cookies() #導出cookie
for cookie in cookies:
    req.cookies.set(cookie['name'],cookie['value']) #轉換cookies
print(cookies) #打印cookies


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM