Python模拟登陆网页的三种方法小结
作者:水月梨诺
如何使用Python模拟登陆网页,尤其是在涉及到复杂的认证机制时?这篇文章将详细介绍Python模拟登陆网页的三种方法,以及如何绕过一些常见的安全防护措施,需要的朋友可以参考下
Python模拟登陆网页的三种方法
一、利用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的步骤
1)打开开发者模式(按下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模拟登陆
注意事项:
1、下载chrome浏览器
2、下载对应版本的Chromedriver,不对应就会出bug
3、一定先查看需要操作的页面元素是否有一层iframe框架(可以在页面元素中ctrl+f输入iframe或frame搜索),不然找不到元素,操作不了。
4、XPath路径可以直接复制网页里面的
1、模拟人工输入账号、密码
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()
四、其他链接
最后
到此这篇关于Python模拟登陆网页的三种方法小结的文章就介绍到这了,更多相关Python模拟登陆网页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!