反爬之点触验证码

本文介绍了如何使用Python和Selenium应对点触验证码的反爬策略。通过模拟真实用户操作,包括移动鼠标、截取验证码、调用第三方打码平台获取坐标并模拟点击轨迹,成功绕过点触验证码,提高爬虫通过率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 解决验证码反爬(一)

导语

大家在使用python 爬取数据时,都会经常遇到网站的一些反扒措施。例如:js加密、验证码、IP封锁等等。而今天更大家分享的就是关于验证码的反反爬,验证码是我们最为常见的一种反爬手段,为了验证是人进行访问还是机器进行访问。所以我们需要去通过模拟人的操作,让服务器误以为是人为的进行访问,从而达到反反爬的目的。

思路

我们以易盾 http://dun.163.com/trial/picture-click 的点触验证码为例。我们使用 selenuim 这个库去自动化驱动浏览器访问,然后获取到验证码图片,将图片发给打码平台(以 超级鹰 为例),通过打码平台返回的点触坐标,通过模拟人为的轨迹(移动、点触)从而实现反反爬。

开发工具

Python版本:3.5

相关模块:

  • Pillow 模块
  • selenium 模块
  • 以及Python 自带的一些模块

环境搭建

  • pip 安装需要的模块
  • 下载 selenuim 浏览器驱动,不同的浏览器需要下载不同的驱动
  • 将下载好的驱动放置环境变量中的文件夹下,也可以放到Python解释器的根目录

具体实现步骤

1. 设置初始化参数、驱动启动参数

import time
from io import BytesIO
from PIL import Image
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

from chaojiying import Chaojiying_Client

# 实现点触验证码 以易盾为例  打码平台为超级鹰
class TouchCaptcha(object):
    def __init__(self, un, pw, id):
        self.url = 'http://dun.163.com/trial/picture-click'  # 网址
        self.un = un  # 打码平台账号
        self.pw = pw  # 密码
        self.id = id  # 软件ID
        chrom_option = self.set_options()
        self.diver = webdriver.Chrome(chrome_options=chrom_option)
        self.wait = WebDriverWait(self.diver, 10)

    # 设置启动参数
    def set_options(self):
        option = Options()
        option.add_argument("--window-size=1366, 1100")
        option.add_argument("disa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值