python爬虫-selenium模拟登录
模拟登录qq空间:有iframe、无验证码
"""
selenium模拟登录QQ空间:有iframe、无验证码
"""
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
if __name__ == '__main__':
u = '你的账户'
p = '你的密码'
# 实例化谷歌浏览器对象
service = Service('./chromedriver')
bro = webdriver.Chrome(service=service)
# 请求页面
url = 'https://qzone.qq.com'
bro.get(url=url)
# 定位到登录的iframe
bro.switch_to.frame('login_frame')
# 使用动作链:from selenium.webdriver import ActionChains
# 实例化动作链对象
action = ActionChains(bro)
# 找到并点击账号密码登录
change_plogin = bro.find_element(by=By.XPATH, value='//a[@id="switcher_plogin"]')
action.click(change_plogin).perform()
# 找到账号框
user_input = bro.find_element(by=By.XPATH, value='//input[@id="u"]')
user_input.send_keys(u)
# 找到密码框
pwd_input = bro.find_element(by=By.XPATH, value='//input[@id="p"]')
pwd_input.send_keys(p)
# 找到登录按钮
login_button = bro.find_element(by=By.XPATH, value='//input[@id="login_button"]')
# 点击登录按钮
action.click(login_button).perform()
# 释放动作链
action.release().perform()
# 关闭浏览器对象
# bro.quit()
模拟登录12306:无iframe、有滑动验证码、有特征识别
"""
模拟登录12306:无iframe,滑动验证码,检测selenium
"""
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver import ChromeOptions # 实现规避检测风险
if __name__ == '__main__':
# 你的用户名密码
username = '你的账户'
password = '你的密码'
service = Service('./chromedriver')
chrome_options = ChromeOptions()
# 规避检测
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 实例化浏览器
bro = webdriver.Chrome(service=service,options=chrome_options)
# 指定url
url = 'https://kyfw.12306.cn/otn/resources/login.html'
bro.get(url=url)
# 找到用户框
user_input = bro.find_element(by=By.XPATH, value='//input[@id="J-userName"]')
# 传入你的用户名
user_input.send_keys(username)
# 找到密码框
pwd_input = bro.find_element(by=By.XPATH, value='//input[@id="J-password"]')
# 传入你的密码
pwd_input.send_keys(password)
# 找到登录按钮/链接
a_login = bro.find_element(by=By.XPATH, value='//a[@id="J-login"]')
# 点击 a_login.click()
a_login.click()
# 使用动作链:from selenium.webdriver import ActionChains
# 实例化动作链对象
action = ActionChains(bro)
# 等待两秒,不然会找不到滑块
time.sleep(2)
# 解决特征识别
script = 'Object.defineProperty(navigator, "webdriver", {get: () => false,});'
bro.execute_script(script)
# 这时候会出现一个滑动验证码
slid_span = bro.find_element(by=By.ID, value='nc_1_n1z')
# 按住并滑动340px
action.click_and_hold(slid_span).perform()
for i in range(10):
action.move_by_offset(34, 0).perform()
time.sleep(0.2)
action.release().perform()
# bro.quit()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!