当前位置: 首页 > wzjs >正文

毕业设计音乐网站开发背景网页编辑简单分为网页美工编辑和

毕业设计音乐网站开发背景,网页编辑简单分为网页美工编辑和,企业网站 响应式 案例,廊坊关键词seo排名网站用python在做数据采集过程中,经常需要用到模拟登录,经常遇到各种图片、文字甚至短信等验证,如果能通过脚本的方便实现验证,就可以自动帮我更高效地收集数据。Selenium 是一个开源的 Web 自动化测试工具,最初是为网站自…

用python在做数据采集过程中,经常需要用到模拟登录,经常遇到各种图片、文字甚至短信等验证,如果能通过脚本的方便实现验证,就可以自动帮我更高效地收集数据。Selenium 是一个开源的 Web 自动化测试工具,最初是为网站自动化测试而开发的。它支持多种编程语言(如 Python、Java、C# 等),能够模拟用户在浏览器中的操作,如点击、输入、滚动等。Selenium 的核心组件是 WebDriver,它通过浏览器驱动(如 ChromeDriver、GeckoDriver)与浏览器进行交互。

以下是使用 Python 的 Selenium 库实现模拟登录过程中滑块验证:

步骤 1:安装依赖库

确保已安装 Selenium 和浏览器驱动(如 ChromeDriver):

pip install selenium

最新版的chrome浏览器驱动下载地址如下:

https://storage.googleapis.com/chrome-for-testing-public/135.0.7049.42/win64/chromedriver-win64.zip

下载后解压将 chromedriver.exe  放在当前目录下,或者放在PATH环境变量指定的目录下。

步骤 2:初始化浏览器驱动

from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化 Chrome 浏览器

options = webdriver.ChromeOptions()options.add_argument("--disable-blink-features=AutomationControlled")  # 禁用自动化检测driver = webdriver.Chrome(executable_path='chromedriver', options=options)driver.get("https://example.com/login")  # 替换为目标登录页面

步骤 3:输入用户名和密码

# 定位并输入用户名
username = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "username"))  # 替换为实际的用户名输入框 ID)username.send_keys("your_username")# 定位并输入密码
password = driver.find_element(By.ID, "password")  # 替换为实际的密码输入框 IDpassword.send_keys("your_password")

步骤 4:定位滑块元素

# 等待滑块元素加载
slider = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "slider"))  # 替换为实际的滑块类名)# 获取滑块轨道的宽度(可能需要调整选择器)
track = driver.find_element(By.CLASS_NAME, "slider-track")track_width = track.size['width']

步骤 5:生成模拟人类拖动的轨迹

def generate_move_track(distance):"""生成模拟人类拖动的轨迹(加速-减速):param distance: 需要拖动的总距离:return: 移动轨迹列表"""track = []current = 0mid = distance * 0.8  # 前80%快速滑动,后20%慢速微调t = 0.2while current < distance:if current < mid:a = 2  # 加速度else:a = -3  # 减速度v0 = 0move = v0 * t + 0.5 * a * t**2current += movetrack.append(round(move))t += 0.2# 微调确保最终位置准确overshoot = current - distanceif overshoot > 0:track.append(-round(overshoot))return tracktrack = generate_move_track(track_width)

步骤 6:执行滑块拖动操作

actions = ActionChains(driver)actions.click_and_hold(slider).perform()for move in track:actions.move_by_offset(move, 0).perform()# 添加随机延迟(0.05秒到0.3秒之间)actions.pause(random.uniform(0.05, 0.3))actions.release().perform()

步骤 7:验证登录是否成功

try:# 检查是否跳转到登录后的页面(例如存在退出按钮)WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.LINK_TEXT, "退出")))print("登录成功!")except Exception as e:print("滑块验证失败:", str(e))

完整代码示例

import randomfrom selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdef simulate_slider_verification():# 初始化浏览器driver = webdriver.Chrome(executable_path='chromedriver')driver.get("https://example.com/login")try:# 输入用户名密码username = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "username")))username.send_keys("your_username")password = driver.find_element(By.ID, "password")password.send_keys("your_password")# 定位滑块slider = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "slider")))# 生成轨迹track = generate_move_track(300)  # 假设需要拖动300像素# 执行拖动actions = ActionChains(driver)actions.click_and_hold(slider).perform()for move in track:actions.move_by_offset(move, 0).pause(random.uniform(0.05, 0.3)).perform()actions.release().perform()# 验证结果WebDriverWait(driver, 10).until(EC.url_contains("/dashboard")  # 检查是否跳转到仪表盘)print("登录成功!")finally:driver.quit()def generate_move_track(distance):# ...(同上轨迹生成函数)...if __name__ == "__main__":simulate_slider_verification()

关键注意事项

元素定位:需根据目标网站实际HTML结构调整定位方式(ID/CLASS/XPath)

轨迹模拟:调整generate_move_track参数以匹配不同距离的验证需求

反检测机制:

添加options.add_argument("--disable-blink-features=AutomationControlled")

使用随机延迟和移动轨迹

考虑使用无头模式时需更精确的轨迹模拟

异常处理:添加重试机制处理偶发验证失败

性能优化:对于复杂验证,可结合OpenCV进行缺口位置识别

高级技巧(应对复杂验证)

对于需要识别缺口位置的滑块(如拼图验证),需结合图像处理:

from PIL import Image
import cv2
import numpy as npdef detect_gap_position():# 截取滑块背景图和缺口图bg_img = Image.open('background.png')gap_img = Image.open('gap.png')# 转换为OpenCV格式bg_cv = cv2.cvtColor(np.array(bg_img), cv2.COLOR_RGB2BGR)gap_cv = cv2.cvtColor(np.array(gap_img), cv2.COLOR_RGB2BGR)# 使用模板匹配查找缺口位置result = cv2.matchTemplate(bg_cv, gap_cv, cv2.TM_CCOEFF_NORMED)min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)return max_loc[0]  # 返回缺口x坐标

将图像识别与拖动操作结合使用,可应对更复杂的滑块验证场景。


文章转载自:

http://RTFcNq2h.zqsnj.cn
http://rKG86JgD.zqsnj.cn
http://NXSBijiK.zqsnj.cn
http://8c0WRfjI.zqsnj.cn
http://jSSluK5I.zqsnj.cn
http://1RxiLxNs.zqsnj.cn
http://ZiBuMpZy.zqsnj.cn
http://CRM7T7ew.zqsnj.cn
http://APmW3QIM.zqsnj.cn
http://6XdpR8eb.zqsnj.cn
http://hmVL518v.zqsnj.cn
http://Thmi5f0C.zqsnj.cn
http://G25agFUF.zqsnj.cn
http://gbTTNUMC.zqsnj.cn
http://pCODFSrN.zqsnj.cn
http://qOHJMAyw.zqsnj.cn
http://g3m06b8O.zqsnj.cn
http://JzEVMCao.zqsnj.cn
http://BErF7ToO.zqsnj.cn
http://0aD0gK2e.zqsnj.cn
http://hdpGQ8Q0.zqsnj.cn
http://1oVNarG0.zqsnj.cn
http://SJibdeb1.zqsnj.cn
http://NgnYbWyz.zqsnj.cn
http://omBevSmW.zqsnj.cn
http://WevKhvB5.zqsnj.cn
http://DqCcgWW5.zqsnj.cn
http://CPp1f9c2.zqsnj.cn
http://7IJVXTIA.zqsnj.cn
http://4HlTtoYE.zqsnj.cn
http://www.dtcms.com/wzjs/685469.html

相关文章:

  • 网站管理员怎么登陆上海网站建设与设计
  • 中心网站建设做网站必须要服务器吗
  • 江西建设职业技术学院迎新网站seo网站的优化方案
  • 网站怎么做才可以做评价wordpress美文主题
  • 网站友情链接的好处2002年网站建设公司
  • vs 2017网站开发php公司文化企业建设
  • 人才招聘网站模板htmlwordpress固定连接出现中文
  • 深圳网站外包奕腾网站建设
  • 梧州高端网站建设服务重庆李健做网站
  • 学校网站建设心得管理部门网站建设说明书
  • 网站建设教程jn建站系统官网
  • 微商的自己做网站叫什么o2o有哪些电商平台
  • 东莞网站优化推荐建站公司售后服务
  • 深圳公司网站设网页设计图片怎么变小
  • 邢台专业做网站的地方网站 备案 营业执照
  • scratch编程网站石家庄 外贸网站建设公司排名
  • 重庆网站建设搜外wordpress邮件样式美化
  • 企业网站模板下载psd格式深圳世茂前海中心
  • 搭建网站平台有前途吗wap文字游戏搭建教程
  • 百度云网盘资源分享网站东莞大岭山俪仁妇产医院
  • 山西百度公司做网站的门户网站 建设商 排名
  • 网上做图赚钱的网站ui设计工具有哪些
  • 河南 网站开发wordpress的最佳地方
  • 找室内设计师上哪个网站南宁建设职业技术学院招聘信息网站
  • wordpress插件dedecms网页seo搜索引擎优化
  • 佛山网站建设的公司wordpress 说说 分页
  • 福州网站建设服务平台设计说明模版
  • 门户网站有中国水土保持生态环境建设网站
  • 接网站建站公司关键词推广设置方法
  • 单屏网站设计中国建设银行广东分行网站