selenium
本文发布于596天前,本文最后更新于595 天前,其中的信息可能已经过时,如有错误请留言或评论。

1. undetected_chromedriver

  1. 使用方法
    import undetected_chromedriver as uc
    driver = uc.Chrome()

    undetected_chromedriver 可以防止浏览器特征被识别,并且可以根据浏览器版本自动下载驱动。
    其他使用与正常selenium一致

  2. 下载安装方式,及详解见下
    undetected_chromedriver

2. selenium获取验证码截图

import requests
from PIL import Image
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

# 以下为selenium对浏览器的操作 
option = webdriver.ChromeOptions() 
#以下为对浏览器的配置
option.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示
# option.add_argument( '--headless' ) # 开启无界面模式
# option.add_argument( '--disable-gpu' ) # 禁用gpu
# option.add_argument('--user-agent=Mozilla/5.0 HAHA') # 配置对象添加替换User-Agent的命令
# option.add_argument('--window-size=1366,768') # 设置浏览器分辨率(窗口大小)
# option.add_argument('--start-maximized') # 最大化运行(全屏窗口),不设置,取元素有可能会报错
# option.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示
# option.add_argument('--incognito') # 隐身模式(无痕模式)
# option.add_argument('--disable-javascript') # 禁用javascript


web = Chorme(options=option)
url = "" # 填写要访问的url
web.get(url)
img = "" # 保存图片的路径,要保存为png或者jpg
web.save_screenshot(img) # 此操作将截屏截取整个浏览器界面并保存到img地址

# 截图出验证码部分的图片
element = web.find_element(by=By.XPTH,value="") # 填写定位到的验证码图片的xpth
# 也可用By.ID或By.NAME等定位
# element的location方法本质上是使用了getElementRect(),区别是其只返回了x,y坐标而没有width和height的值。
print ( "验证码的坐标为:" , element.location) #控制台查看{'x': x, 'y': y}
print ( "验证码的大小为:" , element.size) # 图片大小{'height': h, 'width': w}
# x与y为以左上角为原点定位的一个点,然后以这个元素位置占有一个宽w高h的地方
# 获取到验证码的四点坐标
left_top = element.location[ 'x' ] # x点的坐标
left_bottom = element.location[ 'y' ] # y点的坐标
right_top = element.size[ 'width' ] + left 
right_bottom = element.size[ 'height' ] + top 
# 从截屏中截出验证码
image = Image.open(img)
# 四点坐标有时可能不是很准确,所以有时需要进行微调,如加减几十或一两百,也可乘一个1.5之类的
crop_image = image.crop((left_top, left_bottom, right_top, right_bottom))
crop_image.save(img) # 将截出的验证码保存回原图位置,也可填写其他位置保存为新文件

3. selenium操作下拉滚动条方法

  • 使用js脚本拖动到指定地方(我觉得最好用的)
    target = driver.find_element(by=By.ID,value="id_keypair") # 根据find_element得到目标元素
    driver.execute_script("arguments[0].scrollIntoView();", target) # 拖动到可以看到terget元素的地方

    其他方法可看文末参考,这里我只写了我觉得最好用并且最有用的一种

参考:

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇