selenium模拟淘宝登陆

本文探讨了使用Selenium和Pyautogui在Firefox和Chrome中模拟淘宝登录,包括用户名和密码输入、滑块挑战及解决方法,重点在于Chrome浏览器设置与自动化操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        使用selenium打开浏览器,模拟人工进行淘宝的登陆活动可以在网上找到两种解决方案。

        第一种方案是打开网站后,通过find_element_by_xpath 依次寻找用户名录入框,密码录入框,登陆按钮点击框。如果有滑块的话,还需要找到滑块,模拟操作滑块移动到右方。

        第二种方案是使用pyautogui中的图像匹配功能,需要提前将用户名登陆框,登陆按钮截图作为匹配模板,找到每一部分在屏幕上的位置,使用pyautogui.leftClick 模拟点击屏幕,pyautogui.typewrite(username) 模拟键盘输入,即可。由于pyautogui是屏幕操作,所以必须保证selenium打开的浏览器窗口当前处于活跃状态。

        笔者在尝试的时候,使用的是firefox浏览器,在这两种方法里输入密码的时候均出现滑块,而滑块操作代码无效,或许firefox也需要有一些额外的设置,最终还是在Chrome下成功。

        # 初始化浏览器
        if tag == 'Firefox':
            binary = FirefoxBinary("D:\\Program Files\\firefox\\firefox.exe")
            self.browser = webdriver.Firefox(firefox_binary=binary)
        else:
            options = webdriver.ChromeOptions()
            options.add_experimental_option('excludeSwitches', ['enable-automation'])  
            self.browser = webdriver.Chrome(options=options)

 此处初始化Chrome浏览器时,重要的一点是必须开启开发者模式, 也就是这块options.add_experimental_option('excludeSwitches', ['enable-automation'])  ,如果不开启,那么滑块必然会出现,开启后,还没有发现有滑块出现。

        第一种方案

self.browser.find_element_by_xpath('//input[@name="fm-login-id"]').send_keys(username)
self.browser.find_element_by_xpath('//input[@name="fm-login-password"]').send_keys(password)
self.browser.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()  # 第一次点击登录按钮

    查找用户名录入框,录入用户名,查找密码录入框,录入密码,尝试点击登陆按钮。

     第二种方案

        # 进入登陆窗口
        self.browser.get('https://login.taobao.com/member/login.jhtml')

        # 匹配用户名录入框
        coords = pyautogui.locateOnScreen('D:\\input.png')
        if coords is not None:
            x, y = pyautogui.center(coords)
            # 点击用户名录入框
            pyautogui.leftClick(x, y)
            pyautogui.typewrite(username)

            pyautogui.press('tab')
            pyautogui.typewrite(password)

        # 匹配登陆按钮
        coords = pyautogui.locateOnScreen('D:\\login.png')
        if coords is not None:
            x, y = pyautogui.center(coords)
            # 点击登陆按钮
            pyautogui.leftClick(x, y)

    先匹配用户名录入框,找到之后模拟点击,输入用户名,随后模拟Tab按钮,切换焦点到密码录入框,再录入密码。随后匹配登陆按钮,模拟点击登陆按钮,即可。

    此处需要注意的是pyautogui打开图片时,路径应该采用绝对路径名,且不支持中文。我的python文件是在中文目录下,一开始使用 pyautogui.locateOnScreen('input.png') 提示有错误,应该是无法找到文件。随后换到一个英文路径下,也不行。只有采用一个绝对路径名才不报错。

         滑块功能现在还没有尝试成功,留待下次再试。

2021年10月07日

参考以下文章

selenium淘宝登录和滑块破解最新可用

通过selenium+pyautogui模拟登陆淘宝(完美实现)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值