网站服务器怎么建设,自己怎么做商城网站,乐陵森司特木业,室内设计平面图怎么画Selenium操作Web页面 Why? 通常情况下#xff0c;网络安全相关领域#xff0c;更多是偏重于协议和通信。但是#xff0c;如果协议通信过程被加密或者无法了解其协议构成#xff0c;是无法直接通过协议进行处理。此时#xff0c;可以考虑模拟UI操作#xff0c;进而实现相…Selenium操作Web页面 Why? 通常情况下网络安全相关领域更多是偏重于协议和通信。但是如果协议通信过程被加密或者无法了解其协议构成是无法直接通过协议进行处理。此时可以考虑模拟UI操作进而实现相对应的部分功能。 原理 运行被操作的程序使其界面出现找到被操作的界面元素 基于元素的特征进行识别图像识别和对比opencv 对其进行操作输入、单击、右键等对操作后的结果进行验证确认操作是成功的Selenium Webdriver的通信机制Python模拟客户端发送HTTP请求给WebDriverWebDriver再驱动浏览器去执行 基于Selenium实现dvwa_ui 问题
运行代码后打开网页闪退解决方法 selenium版本回退到4.1.1
pip uninstall selenium # 卸载已安装版本
pip install selenium4.1.1 # 安装指定版本tips
如果要操作windows元素则可以使用库uiautomation如果要处理移动端可以使用库Appium-Python-Clientscapy比socket更加底层的框架
from selenium import webdriver
import time
# 第一步先实例化webdriver对象用于初始化浏览器操作
# 默认情况下建议将chromedriver.exe等放在PATH环境变量的某个目录中否则需要在参数中指定execute_pathC:/xxx/xxx.exe
# driver webdriver.Chrome(executable_pathC:/chromedriver.exe)
driver webdriver.Chrome()
# 使用火狐
# driverwebdriver.Firefox()
# 最大化浏览器窗口
driver.maximize_window()
time.sleep(2)
# 打印网页标题
print(driver.title)
# 打印网页源码
print(driver.page_source)
# 刷新
driver.refresh()
# 后退
driver.back()
# 前进
driver.forward()
# 获取对应的所有cookie
driver.get_cookies()
# 添加cookie
# 关闭浏览器窗口# 访问目标网站的页面地址
urlhttp://www.myfsec.com/login.php
driver.get(url)# 第二步利用DOM的识别机制去识别和操作页面元素
# 旧方法将弃用
# driver.find_element_by_name(username).send_keys(admin)
# driver.find_element_by_name(password).send_keys(password)driver.find_element(name,username).send_keys(admin)
driver.find_element(name,password).send_keys(password)# 将弃用
# 根据xpath与css选择器定位元素
# driver.find_element_by_xpath(//input[idverifycode]).secd_keys(0000)
# driver.find_element_by_xpath(//*[idcontent]/form/fieldset/p/input).click()
# driver.find_element_by_css_selector(#content form fieldset p input[typesubmit])
# 推荐使用
# driver.find_element(xpath,//*[idcontent]/form/fieldset/p/input).click()
driver.find_element(css selector,#content form fieldset p input[typesubmit]).click()
# # 打印网页标题
# print(driver.title)
# # 打印网页源码
# print(driver.page_source)# 判断是否登陆成功可以看网页中的某个元素是否存在
try:driver.find_element(id,main_body)print(登陆成功)
except:print(登陆失败)# 或者
if Welcome to Damn Vulnerable Web Application! in driver.page_source:print(登陆成功)
else:print(登陆失败)
driver.close()chromdriver驱动下载谷歌 114之前版本 chromedriver.storage.googleapis.com/index.html 125以后版本 Chrome for Testing availability (googlechromelabs.github.io) geckodriver驱动下载火狐 发布 ·Mozilla/GeckoDriver (github.com) 补充selenium操作windows–UIAutomation 其实使用selenium操作windows窗口最主要的的是像浏览器的F12一样识别他的布局结构从而获取相应的元素进行操作因此我们需要用到一个工具UISpy 例如驱动windows下的wechat import uiautomation,time
def get_moment_list(moment):moment_listmoment.ListControl(Name朋友圈).GetChildren()# 获取朋友圈列表目前只能获取看到的前几条后面的需要滚动条滚动才能获取滚动还没实现return moment_list
# 定位到朋友圈框
def locate_wechat_moment():wechatuiautomation.WindowControl(Name微信) # 加载微信框wechat.ButtonControl(Name朋友圈).Click() # 点击朋友圈按钮# time.sleep(1) # 等待1秒momentuiautomation.WindowControl(Name朋友圈) # 加载朋友圈框moment.ButtonControl(Name刷新).Click() # 点击刷新按钮moment_listget_moment_list(moment)[1:]print(len(moment_list))moment.WheelDown(wheelTimes12, interval0.1, waitTime0.5)close_moment_btnmoment.ButtonControl(Name关闭)close_locationclose_moment_btn.BoundingRectangleprint(close_location)while True:moment_listget_moment_list(moment)moment_bottommoment.BoundingRectangleprint(moment_bottom)for friend in moment_list:friend_bottomfriend.BoundingRectangleprint(friend_bottom)print(friend.Name)try:if friend_bottom.bottom40:passelse:friend.ButtonControl(Name评论).Click() # 点击评论按钮,目的是为了显示出点赞按钮moment.ButtonControl(Name取消).Click() # 点击赞按钮print(点赞成功)except:print(点赞失败)finally:yfriend.BoundingRectangle.bottomprint(y)moment_listget_moment_list(moment)moment.WheelDown(wheelTimesy//20, interval0.1, waitTime0.5)if __name__ __main__:locate_wechat_moment()验证码问题
短信验证码用自己的手机获取验证码然后用Python直接操作手机端提取验证码进而实现自动化操作的目的。图像验证码静态和动态静态的图片验证码在没有AI之前利用打码平台进行识别或人工智能训练集进行处理而对于动态类型验证码比如图像滑动机器学习 可处理的类型文字、图片、视频、语音怎么进行学习CNN卷积神经网络 安装库tensorflow.keras.models… 学习数据必须要有正确的标记图片和正确答案网络安全的AI应用入侵检测 传统的入侵检测基于特征某个流量或请求存在一些可以的特征时进行预警或防护基于AI的入侵检测基于机器学习学习大量的正确的数据包和请求一旦发现某个数据包与某个学习过的匹配度很低则可疑