python教程

python selenium淘宝二维码登录代码

我的站长站 2021-10-11 人阅读

先贴上代码,这里我是用的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就好了。别的网站也差不多是这样截取二维码的。


相关推荐
  • Python源码
  • Json压缩和格式化工具,附Python源码
    Json压缩和格式化工具,附Python源码

    软件介绍一款Json压缩和格式化工具,可以在线Json压缩和格式化。基于Python库开发,附上Python源码,GUI没有美化,巨丑。软件截图Python源码import jsonimport tkinter as tkdef json_compress(json_str...

    开发软件 34 10个月前
  • python打飞机小游戏源码+成品打包

    python源码用的pygame库,自带的random和os。程序运行需要的图片,声音和字体下载链接: https://pan.baidu.com/s/1KItG2usXOM_xcxcdHIixaw 提取码: qmweimport pygameimport randomimport os FPS = 60WIDTH = 500HEIGHT = 600 BLACK = (0, 0, 0)WHITE =...

    python教程 42 10个月前
  • 原创力文库Python爬虫下载源码

    # !/usr/bin/python# -*- coding: UTF-8 -*-import reimport jsonimport osimport shutilimport sysimport timeimport requestsimport img2pdffrom PIL import Image from alive_progress import alive_barfrom requests.exceptions import SSLErro...

    python教程 54 1年前
最新更新