Selenium 的 常用操作

Selenium 的好处:
有些网站的JS或加密 太复杂,可破动态加载的网页,节约时间成本,模拟游览器进行操作简单
若想 找刺激 ,就先去各大网站的登陆页面试试水。
套路就一个: 抓包分析参数,利用游览器的监听事件,找到参数的大概位置,下断点,一步一步调试游览器。找到怎样加密的。。

from selenium import webdriver

需要下载启动的exe文件:
火狐:geckodriver.exe
无头游览器:phantomjs.exe 停止更新
谷歌:chromedriver.exe 对应游览器版本

全部用火狐游览器举例:

driver = webdriver.Firefox(executable_path=path) 创建一个web 启动器可传入装置的位置

driver.get(‘https://www.baidu.com’) 访问一个网站

driver.page_source 相当于 requests 返回的 text 信息

超时时间 可利用 time.sleep 自行测试
driver1.set_page_load_timeout(40) 页面超时时间

driver1.set_script_timeout(40) 脚本加载超时时间

driver1.set_window_size(1366,768) 游览器的 大小

定位元素的函数 看个人喜好,我喜欢用 xpath,里面有很多方法:tag标签,css选择器等

driver.find_element_by_xpath() 通过 xpath 定位 元素,只能定位第一个

driver.find_elements_by_xpath() 通过 xpath 定位 元素 返回列表,可定为多个

# 获取截图
driver.get_screenshot_as_file('screenshot.png')

# print('element',element)
left = int(element.location['x'])
# print(left)
top = int(element.location['y'])
right = int(element.location['x'] + element.size['width'])
bottom = int(element.location['y'] + element.size['height'])

# 通过Image处理图像,得到准确的photo
from PIL import Image
im = Image.open('screenshot.png')
im = im.crop((left, top, right, bottom))
im.save('vcode.png')

定位 后 可以进行 事件控制例如 点击,双击,右键,拖动
定位后 赋予 给 element_login 变量

鼠标的操作: 两篇文章
https://blog.csdn.net/huilan_same/article/details/52305176?utm_source=copy
https://blog.csdn.net/CCGGAAG/article/details/75717186
selenium 关于游览器 模拟鼠标的 移动的时候 有坑: 由于游览器的大小被确定了,当移动到游览器外面时,会报错。。

当在同一个游览器,点击打开多个网页时:会出现无法获取到你想要的网页信息。
不要慌,这个时候,你需要考虑,你的句柄是否在页面 。。如若不然,你需要移动句柄到当前页面。。

		移动到当前页面:
        all_page = driver.window_handles #返回 游览器句柄的列表
        current_page = driver.current_window_handle # 获取当前页面的句柄
        driver.switch_to_window(driver.window_handles[1])#移动句柄

处理JS弹窗:https://www.cnblogs.com/mengyu/p/6952774.html

driver.quit() 退出游览器
还有一点坑爹的,在少部分网站,你访问网页的速度不要太快,移动的时候,不要瞬移,不要 移动速度 不变,等一些别的因素 不然会被认定为 机器人,然后返回给个异常给你。

感觉差不多了,若遇到不一样的会补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值