最帅爬虫_Selenium 手动打码

一、验证码问题

1.1 验证码出现位置

  • 登录界面

    登录界面没有验证码(特别网站),只有输错了多次情况下才会出现,只要输入一次,又很少出现了。

  • 查询数据的时候,查询按钮之前要输入。

  • 当我们爬一个网站,爬到一般出现验证码-----以滑动验证码居多

1.2 验证码分类

  • 图片验证码–普通验证码
    知网图片验证码:http://my.cnki.net/elibregister/CheckCode.aspx

  • 滑动验证码–验证码高级

  • 反人类验证码–难以分辨的验证码

二、selenium手动打码

对于任何的验证码我们都可以使用selenium手动输入。

发票检验 URL:https://inv-veri.chinatax.gov.cn/

在这里插入图片描述

selenium使用ie浏览器

import time
from selenium.webdriver.common.keys import Keys

def verify_fp():
    from selenium import webdriver
    # 创建浏览器驱动
    driver = webdriver.Ie()
    # 请求url
    driver.get('https://inv-veri.chinatax.gov.cn/')
    # 等待
    # driver.implicitly_wait(20)
    time.sleep(5)
    # 添加发票代码
    driver.find_element_by_xpath('//*[@id="fpdm"]').send_keys('044031900211')
    driver.find_element_by_xpath('//*[@id="fphm"]').send_keys('28780009')
    driver.find_element_by_xpath('//*[@id="kprq"]').send_keys('20200417')
    driver.find_element_by_xpath('//*[@id="kjje"]').send_keys('227437')
    # driver.find_element_by_xpath('//*[@id="yzm_img"]').click()

    while True:
        # 清空输入款
        driver.find_element_by_xpath('//*[@id="yzm"]').send_keys(Keys.CONTROL,'a') # 全选
        driver.find_element_by_xpath('//*[@id="yzm"]').send_keys(Keys.CONTROL,'x') # 剪切

        code = input('输入验证码:')
        driver.find_element_by_xpath('//*[@id="yzm"]').send_keys(code)
        time.sleep(5)
        driver.find_element_by_xpath('//*[@id="checkfp"]').click()
        time.sleep(5)
        if '3999.0' in driver.page_source:
            print('发票为真!')
            break
        print('验证码错误,冲输入!')

if __name__ == '__main__':
    verify_fp()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值