菜鸡源码,专注精品下载!
当前位置:首页 > 建站教程 > 建站知识

使用Python和Selenium实现淘宝二维码登录的代码

发布时间:2024-01-05  栏目:建站知识   浏览:   分类:python教程 Python源码

首先,我们需要安装selenium库和对应的浏览器驱动。然后,我们可以使用selenium的webdriver来模拟浏览器操作,实现淘宝二维码登录。 以下是一个简单的示例代码: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 创建一个浏览器实例 driver = webdriver.Chrome() # 打开淘宝登录页面 driver.get("https://login.taobao.com/member/login.jhtml") # 等待页面加载完成 time.sleep(2) # 点击二维码登录按钮 driver.find_element_by_xpath('//*[@id="J_Quick2Static"]').click() # 等待二维码加载完成 time.sleep(5) # 关闭浏览器 driver.quit() ``` 注意:这个代码只是一个基本的

先贴上代码,这里我是用的jupyter notebook写的,用的不是很熟练,所以可能有点丑陋,推荐不要直接复制使用。

fromseleniumimportwebdriverbs=webdriver.Chrome()bs.maximize_window()bs.get('https://www.taobao.com')login_btn=bs.find_element_by_xpath('//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]')login_btn.click()toggleerweima=bs.find_element_by_xpath('//*[@id="login"]/div[1]/i')toggleerweima.click()imgurl='./二维码.png'bs.save_screenshot(imgurl)EWM=bs.find_element_by_xpath('//*[@id="login"]/div[2]/div/div[1]/div[1]')topX=EWM.location["x"]*1.25topY=EWM.location['y']*1.25print(EWM.size['width'])bottomX=topX+170print(EWM.size['height'])bottomY=topY+170print(topX,topY,bottomX,bottomY)fromPILimportImagepicture=Image.open(imgurl)picture=picture.crop((topX,topY,bottomX,bottomY))picture.save(imgurl)img=Image.open(imgurl)img.show()bs.quit()

前几行代码很好理解,就是先导入selenium里的webdriver,这里说一下怎么装一下webdriver。
首先打开cmd--->pip --version找到Python的安装路径
然后打开谷歌浏览器查看一下浏览器的版本(帮助--->关于Google Chrome)我的是94.0.4606.71
之后在打开百度搜索Chromedriver taobao,第一个就是(http://npm.taobao.org/mirrors/chromedriver)然后找到自己版本的driver,如果没有对应的话,下载离你版本最近的chromedriver,然后解压后放入Python的路径里。
之后我们打开淘宝,然后找到请登录,然后切换到二维码,再截图,然后用Image对二维码的位置进行截图,然后再将二维码展现出来,之后扫码登录就行了。
说一下重点,就是我之前截取二维码的时候,一直找不到对应的位置,一直是往前一点,往上一点,后来百度查了一下才知道。
这是因为Windows的分辨率不同而导致的。
之所以会出现这个坐标偏差是因为windows系统下电脑设置的显示缩放比例造成的,location获取的坐标是按显示100%时得到的坐标,而截图所使用的坐标却是需要根据显示缩放比例缩放后对应的图片所确定的,因此就出现了偏差。解决这个问题有三种方法1.修改电脑显示设置为100%。这是最简单的方法;2.缩放截取到的页面图片,即将截图的size缩放为宽和高都除以缩放比例后的大小;3.修改Image.crop的参数,将参数元组的四个值都乘以缩放比例。
我是用的将位置进行比例运算,我电脑是125%,所以让坐标*1.25就好了。别的网站也差不多是这样截取二维码的。


评论
建站知识
建站知识
使用技巧
调试安装
运营推广