Python模擬自動(dòng)登陸網(wǎng)頁的三種方法!

一、利用Cookie實(shí)現(xiàn)登陸
1、先登陸后取網(wǎng)頁中的Cookie加入到headers(標(biāo)頭),再用get方法獲取網(wǎng)頁內(nèi)容
import requests
headers = {
"Cookie": "你登陸后網(wǎng)頁的Cookie"
}
url = 'https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919'
response = requests.get(url,headers=headers)
response.encoding = 'utf-8'
print(response.json())
2、獲取Cookie的步驟, 打開開發(fā)者模式(按下f12),進(jìn)入網(wǎng)絡(luò)(network),并輸入登陸賬號密碼

2)找到相應(yīng)的文件,查看“請求標(biāo)頭”

運(yùn)行結(jié)果:
二、利用from data的數(shù)據(jù)提交賬號密碼
1、先登陸然后找到登陸響應(yīng)頁面的from data的數(shù)據(jù)(即賬號密碼)用post提交賬號密碼
import requests
session = requests.session()
url = "https://passport.17k.com/ck/user/login"
data = {
"loginName":"你的賬號",
"password":"你的密碼"
}
session.post(url,data=data)
resp = session.get("https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919")
print(resp.json())
找到data的步驟:
1)進(jìn)入17k.com然后點(diǎn)擊書架,進(jìn)入登陸頁面,輸入賬號密碼
2)登陸后注意網(wǎng)絡(luò)(network)里面的login文件并點(diǎn)擊,找到負(fù)載(或者往下拉找到 from data)
3)把你的賬號密碼copy到代碼里面來

運(yùn)行結(jié)果:

三、Selenium模擬登陸
模擬人工輸入賬號、密碼
from selenium import webdriver
import time
driver.get("https://user.17k.com/www/bookshelf/")
time.sleep(2)
#獲取登陸模塊的iframe
el_path = driver.find_element_by_xpath('/html/body/div[4]/div/div/iframe')
#進(jìn)去該iframe
driver.switch_to.frame(el_path)
#進(jìn)入成功后,輸入賬號密碼以及勾選同意并點(diǎn)擊登陸
driver.find_element_by_xpath('//dd[@class="user"]/input').send_keys('你的賬號')
driver.find_element_by_xpath('//dd[@class="pass"]/input').send_keys('你的密碼')
#勾選同意
driver.find_element_by_xpath('//*[@id="protocol"]').click()
#點(diǎn)擊登陸
driver.find_element_by_xpath('//dd[@class="button"]/input').click()
注意事項(xiàng):
1、下載chrome瀏覽器
2、下載對應(yīng)版本的Chromedriver,不對應(yīng)就會(huì)出bug
3、一定先查看需要操作的頁面元素是否有一層iframe框架(可以在頁面元素中ctrl+f輸入iframe或frame搜索),不然找不到元素,操作不了。
4、XPath路徑可以直接復(fù)制網(wǎng)頁里面的
推薦閱讀:
END

長按二維碼/微信掃碼 添加作者
評論
圖片
表情
