当前位置: 首页 > news >正文

重庆出名的网站建设公司运城seo

重庆出名的网站建设公司,运城seo,成人网站怎么做,网站建设的分项报价前面我们说过了数字英文的验证码识别操作,本章我们对其进行完善一下,结合selenium来实际操作操作。import osimport timedef coding_path(path):Base_Path os.path.abspath(os.path.dirname(os.path.abspath(__file__)) /..)Base_image os.path.join(…

前面我们说过了数字英文的验证码识别操作,本章我们对其进行完善一下,结合selenium来实际操作操作。

import os

import time

def coding_path(path):

Base_Path = os.path.abspath(os.path.dirname(os.path.abspath(__file__)) + '/..')

Base_image = os.path.join(Base_Path + r'\PIC', path)

return Base_image

def time_():

# %Y_%m_%d_%H_%M_%S

file_name = time.strftime("%Y_%m_%d_%H_%M") + ".png"

return file_name

首先先来写一个时间戳,你没看错,我想用时间戳来保存截图。至于coding_path就是一个相对路径,读取文件位置的一个函数。里面Base_Path是获取相对路径,Base_image是用的路径拼接的方式存放截图图片的。

接下来就是正文了

class Brouse:

def __init__(self):

self.fox = webdriver.Firefox()

def save_image(self):

"""

截图

:return:

"""

self.fox.save_screenshot(coding_path(time_()))

def location_(self, loc):

"""

:param loc:

:return:获取图片位置

"""

location = loc.location

return location

def location_size(self, loc):

"""

:param loc:

:return:获取图片大小

"""

location_size = loc.size

return location_size

这里我写的是类,里面写了各种方法。因为是结合selenium来写的,所以,这里我需要初始化驱动。至于为什么是火狐,这里我没做多的判断,各位自行更改成喜欢的就好。

里面我写了一个selenium截图的方法、获取图片位置的方法、以及获取图片大小的方法。并将后两者的值全部返回,至于为什么返回,后面用的到。一下往下看。

def image_size(self, image):

"""截图验证码大小,根据实际修改"""

rangle = (int(self.location_(image)['x'] - 5), int(self.location_(image)['y'] - 5),

int(self.location_(image)['x'] + self.location_size(image)['width'] + 11),

int(self.location_(image)['y'] + self.location_size(image)['height'] + 7))

return rangle

def crop_image(self):

"""

:return: 识别截图验证码

"""

ocr = DdddOcr()

file_image = open(coding_path(time_()), 'rb')

result = ocr.classification(file_image.read())

return result

同样的,这两个方法我是写在了类中的,只是分开来写了。截取验证码这一块,根据不同的电脑尺寸来,以及现实所设置布局。所以这里需要自己做一部分调整。另外,此处也可以采用*一定的比例来进行截取,例如self.location_(image)['x'] * 1.25。

我们需要得到截取后的验证码图片,所以,我们这里也需要返回一个值。

接下来就是识别验证码了,上一篇讲过,但是这里的方法需要在后续才能展现用处,往下看。同样用的是二进制读取。并将读取的值进行返回。

def eles_crop_image(self, ele, num):

"""

元素组截图定位

:param ele:

:param num:

:return:

"""

pic = self.fox.find_elements_by_xpath(ele)[num]

sleep(1)

# 保存截图,调用时间戳

self.save_image()

# 获取位置

self.location_(pic)

# 获取大小

self.location_size(pic)

# 确定所需要的图片大小

self.image_size(pic)

# 打开之前截图图片

image = Image.open(coding_path(time_()))

# 开始裁剪

image1 = image.crop(self.image_size(pic))

# 保存裁剪后的截图

image1.save(coding_path(time_()))

# 图片内容

number = self.crop_image()

while 1:

if len(number) < 3:

number = self.crop_image()

return number

break

return number

这里我们就是用到了上述的识别验证码了。但是在这之前,需要怼图片进行一些处理,也就是上面写到了的裁剪,裁剪出属于验证码的那一部分。上述的注释写了哦,需要一步步来最后得到完整的验证码图片,并对它进行识别,返回识别的值。

def Fox_test(self):

self.fox.get('https://d2.shopxo.vip/admin.php?s=admin/logininfo.html')

self.fox.find_element_by_xpath("//input[@name='accounts']").send_keys('admin')

self.fox.find_element_by_xpath("//input[@name='pwd']").send_keys('shopxo')

self.fox.find_element_by_xpath("//input[@name='verify']").send_keys(

self.eles_crop_image("//span[@class='am-input-group-btn']", 1))

self.fox.find_element_by_xpath("//*[text()='登录']").click()

self.fox.close()

if __name__ == '__main__':

Brouse().Fox_test()

此处就不用多说了吧,selenium基础,打开网址,定位元素,再加上调用方法传值,输入验证码,最后完成登录。

此外,如果还有更好的方法,可以私信我,一起探讨。

http://www.tj-hxxt.cn/news/35739.html

相关文章:

  • 香港公司能在大陆做网站备案嘛软文大全
  • 阿里 做网站郑州seo推广优化
  • unity 做网站百度订单售后电话
  • wordpress居中样式网站关键词优化软件效果
  • 做网站的问卷调查设计网站官网
  • 做政府网站品牌运营中心
  • 专门做网站开发的公司宁波seo推广平台
  • 怎么做赌博网站梅州网络推广
  • 顺义做网站的厂家百度网盘手机版
  • 云浮哪有公司做网站的seo推广公司
  • 中国空间站对接成功aso投放平台
  • 沧州网站设计公司网络营销推广与策划
  • jsp和.net做网站的区别成人职业技能培训学校
  • 无线网站制作深圳网络推广平台
  • 平湖新埭哪里有做网站的游戏推广员骗局
  • 旅游酒店网站建设背景分析站长工具seo综合查询分析
  • 我的世界服务器网站怎么做seo学习网站
  • wordpress首页调用最新文章太原seo快速排名
  • wordpress文章模板编辑器天津seo排名费用
  • 小学网站建设方案书百度指数移动版
  • 网站开发颜色代码域名检测工具
  • 网站开发主要有两个阶段百度获客平台怎么收费的
  • 专业网站建设优势小程序如何推广运营
  • 公司做网站需要注意些什么问题你就知道
  • 企业手机网站建设定制整站优化方案
  • 网站怎么做让PC和手机自动识别百度热搜榜排名今日头条
  • 做动态图网站百度网站联系方式
  • 成都网站制作公司有哪些长沙专业竞价优化公司
  • 用html做企业门户网站市场营销培训课程
  • 海口网站建设方案推广网站制作的服务怎么样