Python模拟自动登陆网页的三种方法!

测试开发技术

共 1922字,需浏览 4分钟

 ·

2022-12-22 11:09

一、利用Cookie实现登陆

1、先登陆后取网页中的Cookie加入到headers(标头),再用get方法获取网页内容

import requests

headers = {
    "Cookie""你登陆后网页的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的步骤, 打开开发者模式(按下f12),进入网络(network),并输入登陆账号密码

2)找到相应的文件,查看“请求标头”

运行结果:

二、利用from data的数据提交账号密码

1、先登陆然后找到登陆响应页面的from data的数据(即账号密码)用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)进入17k.com然后点击书架,进入登陆页面,输入账号密码

2)登陆后注意网络(network)里面的login文件并点击,找到负载(或者往下拉找到 from data)

3)把你的账号密码copy到代码里面来

运行结果:

三、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')
#进去该iframe
driver.switch_to.frame(el_path)
#进入成功后,输入账号密码以及勾选同意并点击登陆
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()
#点击登陆
driver.find_element_by_xpath('//dd[@class="button"]/input').click()

注意事项: 

1、下载chrome浏览器 

2、下载对应版本的Chromedriver,不对应就会出bug 

3、一定先查看需要操作的页面元素是否有一层iframe框架(可以在页面元素中ctrl+f输入iframe或frame搜索),不然找不到元素,操作不了。 

4、XPath路径可以直接复制网页里面的

推荐阅读:

  1. 重磅消息 | 2022年最新全栈测试开发技能实战指南(第3期)

  2. 聊聊测开职业发展:讲三点!

  3. 低代码开发,推荐一款Web 端自动化神器:Automa!

  4. 史上最全测试开发工具推荐(含自动化、APP性能、稳定性、抓包神器)

  5. 2022年最全的软件测试工程师发展知识体系图谱!


END

所有原创文章
第一时间发布至此公众号「测试开发技术」

长按二维码/微信扫码  添加作者

浏览 100
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报