吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4375|回复: 22
上一主题 下一主题
收起左侧

[Python 转载] 关于知乎登录的反扒机制绕过

  [复制链接]
跳转到指定楼层
楼主
撸冰花 发表于 2021-3-3 16:40 回帖奖励
登录有许多的反扒机制,首先是登录不可以快速请求我用selenium接管打开的浏览器绕过
第二是图形滑块验证码,使用图像层次进行绕过

在开始运行代码之前,可以去搜索一下selenium接管浏览器,文中需要用到

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time, requests
import cv2
import numpy as np
import re
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
zh = webdriver.Chrome(r'E:\pycharm\pythonProject\Reptile\自动化测试\chromedriver.exe', chrome_options=chrome_options)
zh.get('https://www.zhihu.com/signin?next=%2F')

#登录
def login():
    element = zh.find_element_by_css_selector('[class="SignFlow-tab"]').click()

    zh.implicitly_wait(3)

    username = zh.find_element_by_css_selector('[placeholder="手机号或邮箱"]')
    zh.implicitly_wait(3)
    username.send_keys('admin') #此处键入用户名

    time.sleep(2)

    password = zh.find_element_by_css_selector('[placeholder="密码"]')
    zh.implicitly_wait(3)
    password.send_keys('admin') #此处键入密码

    time.sleep(2)

    loginbutton = zh.find_element_by_css_selector('[type="submit"]').click()

#获取验证图片
def hqimage():

    zh.switch_to.frame('tcaptcha_iframe')
    time.sleep(2)
    bj_img =zh.find_element_by_xpath('/html/body/div/div[3]/div[2]/div/div[2]/img').get_attribute('src') #获取背景图链接
    xhd_img = zh.find_element_by_xpath('/html/body/div/div[3]/div[2]/div/div[3]/img').get_attribute('src') #获取小黑块链接
    print(bj_img)
    print(xhd_img)
    with open('./bj.jpg', mode='wb') as f: #保存背景图图片到本地
        f.write(requests.get(bj_img).content)
        f.close()
    with open('./xhd.jpg', mode='wb') as f: #保存小黑块图片到本地
        f.write(requests.get(xhd_img).content)
        f.close()

k=1
#处理验证图片
def climage():
    bj = cv2.imread('./bj.jpg') #打开待处理图片
    xhd =cv2.imread('./xhd.jpg')

    bj = cv2.cvtColor(bj, cv2.COLOR_BGR2GRAY)# 灰度处理
    xhd = cv2.cvtColor(xhd, cv2.COLOR_BGR2GRAY)

    time.sleep(3)

    # 去掉滑块黑色部分
    xhd = xhd[xhd.any(1)]  # 0表示黑色,1表示高亮部分

    time.sleep(3)

    # 匹配->cv图像匹配算法
    result = cv2.matchTemplate(bj, xhd, cv2.TM_CCOEFF_NORMED)  # match匹配,Template模板;精度高,速度慢的方法
    index_max = np.argmax(result)  # 返回的是一维的位置,最大值索引

    time.sleep(3)

    # 反着推最大值的二维位置,和opencv是相反的
    x, y = np.unravel_index(index_max, result.shape)
    print("二维中坐标的位置:", x, y)
    print("正在进行第%s次滑动验证" % k)
    drop = zh.find_element_by_xpath('/html/body/div/div[3]/div[2]/div[2]/div[2]/div')
    ActionChains(zh).drag_and_drop_by_offset(drop, xoffset=x+26, yoffset=0).perform()
    time.sleep(1)

if __name__ == '__main__':
    login()

    while 1:

        hqimage()
        climage()
        zh.switch_to.default_content()
        if '首页' in zh.title:
            break
        else:
            print('第%s次验证失败...' % k, '\n')
        k = k+1
        time.sleep(5)

免费评分

参与人数 9吾爱币 +9 热心值 +9 收起 理由
hynaqaq + 1 + 1 我很赞同!
TheQuantum + 1 + 1 我很赞同!
czp12321 + 1 + 1 我很赞同!
Lxxx_x + 1 + 1 我很赞同!
lcxxhp + 1 + 1 谢谢@Thanks!
蓝风 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
王星星 + 1 + 1 谢谢@Thanks!
ciker_li + 1 + 1 谢谢@Thanks!
LL生 + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| 撸冰花 发表于 2021-3-4 14:42 |楼主
Test_dada 发表于 2021-3-4 10:50
请问下楼主
login()函数为什么要用三个zh.implicitly_wait(3)隐式等待呢?
据我了解.implicitly_wait(tim ...

哇,这里我还没注意到,学艺不精!!!本来我想全部用time.sleep函数的,中间看到资料说这个函数发现更加灵活想试试,但是没有细究它竟然是全局的
推荐
Test_dada 发表于 2021-3-4 10:50
请问下楼主
login()函数为什么要用三个zh.implicitly_wait(3)隐式等待呢?
据我了解.implicitly_wait(time)的作用域不是全局的吗?
希望楼主解惑
沙发
ciker_li 发表于 2021-3-3 16:45
3#
wsp0801 发表于 2021-3-3 16:50
感谢分享
4#
 楼主| 撸冰花 发表于 2021-3-3 16:50 |楼主

快给个评分,嘿嘿
5#
LL生 发表于 2021-3-3 16:53
大佬就是厉害
6#
肥皂超人 发表于 2021-3-3 17:05
厉害了大佬
7#
 楼主| 撸冰花 发表于 2021-3-3 17:09 |楼主

卑微的我希望能够得到一个评分,涨涨知识
8#
一如既往。 发表于 2021-3-3 17:23
大佬厉害了,这个过滑动的原理是什么呀
9#
 楼主| 撸冰花 发表于 2021-3-3 17:50 |楼主
一如既往。 发表于 2021-3-3 17:23
大佬厉害了,这个过滑动的原理是什么呀

识别图像戳的口子,然后进行灰度处理之后就可以找到图片的缺口位置了
头像被屏蔽
10#
麦子1995 发表于 2021-3-3 18:03
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 12:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表