欢迎您光临自学哈网,只为分享网络知识教程,供大家学习参考!

「自学哈网」python selenium淘宝二维码登录代码

作者 : 自学哈 本文共1617个字,预计阅读时间需要5分钟 2022-10-14 共165人阅读
也想出现在这里? 联系我们

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

from selenium import webdriver
bs = 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.25
topY = EWM.location['y']*1.25
print(EWM.size['width'])
bottomX = topX + 170
print(EWM.size['height'])
bottomY = topY + 170
print(topX,topY,bottomX,bottomY)
from PIL import Image
picture = 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就好了。别的网站也差不多是这样截取二维码的。

本站声明:
本站所有资源来源于网络,分享目的仅供大家学习和交流!如若本站内容侵犯了原著者的合法权益,可联系邮箱976157886@qq.com进行删除。
自学哈专注于免费提供最新的分享知识、网络教程、网络技术的资源分享平台,好资源不私藏,大家一起分享!

自学哈网 » 「自学哈网」python selenium淘宝二维码登录代码
也想出现在这里? 联系我们
© 2022 Theme by - 自学哈网 & WordPress Theme. All rights reserved 浙ICP备2022016594号