爬虫—phantomJS极验拼图破解

本文介绍了如何使用PhantomJS破解全国企业信用信息系统中的滑动验证码。首先,从div获取乱序图片及坐标进行拼图,接着计算两张图片的像素差以定位缺口,然后模拟人的滑动行为完成验证。代码实现中,滑块初始位置离缺口5个像素,行为数据模仿人类的慢-快-慢过程。GhostMouse可用于获取鼠标行为数据,但直接模拟请求可能需要解析加密的js文件,目前存在困难。
摘要由CSDN通过智能技术生成

  在全国企业信用信息系统中搜索信息时,可以看到以下验证码:



 

  破解思路:

    1.从div中或取乱序的图片及坐标,乱序图片如下图:

     

 

     2.根据获取到的乱序图片及坐标将图片拼完整,如下图:

      

 ,

 

     3.计算两张图片的像素差,并计算缺口位置,如下图:

      

 

     4.根据缺口位置模拟人的行为拖动滑块

  具体代码如下:

  

def get_merge_image(filename,location_list):
    '''
    根据位置对图片进行合并还原
    :filename:图片
    :location_list:图片位置
    '''
    pass
    im = image.open(filename)
    new_im = image.new('RGB', (260,116))
    im_list_upper=[]
    im_list_down=[]
    for location in location_list:
        if location['y']==-58:
            pass
            im_list_upper.append(im.crop((abs(location['x']),58,abs(location['x'])+10,166)))
        if location['y']==0:
            pass
            im_list_down.append(im.crop((abs(location['x']),0,abs(location['x'])+10,58)))
    new_im = image.new('RGB', (260,116))
    x_offset = 0
    for im in im_list_upper:
        new_im.paste(im, (x_offset,0))
        x_offset += im.size[0]
    x_offset = 0
    for im in i
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值