爬虫笔记--Selenium实现有验证码网站模拟登录

这篇具有很好参考价值的文章主要介绍了爬虫笔记--Selenium实现有验证码网站模拟登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码如下:

import time

import ddddocr
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By

# 打开google浏览器
option = webdriver.ChromeOptions()
option.add_argument(
    "--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\crawl\\Default")  # 浏览器存储用户配置文件的目录。
option.add_argument("--profile-directory=Default")  # 选择要与启动的浏览器关联的配置文件目录
# 反反爬配置
option.add_argument("--disable-blink-features=AutomationControlled")  # 禁用blink特征
option.add_experimental_option('excludeSwitches', ['enable-automation'])
# 开始获取cookie
browser = webdriver.Chrome(options=option)
browser.get("https://adv.aiclk.com/#/index/login~force=1")
time.sleep(10)
# 我们就一个账户, 所以在这里写死用户名和密码
user_name = 'user_name'
password = 'password'
try:
    browser.find_element(By.XPATH, "//input[@id='ctrltextusername']").click()
    browser.find_element(By.XPATH, "//input[@id='ctrltextusername']").clear()
    browser.find_element(By.XPATH, "//input[@id='ctrltextusername']").send_keys(user_name)
    time.sleep(2)
    browser.find_element(By.XPATH, "//input[@id='ctrltextpassword']").click()
    browser.find_element(By.XPATH, "//input[@id='ctrltextpassword']").clear()
    browser.find_element(By.XPATH, "//input[@id='ctrltextpassword']").send_keys(password)
    time.sleep(3)
    # 获取src
    code_image = browser.find_element(By.XPATH, "//img[@id='code_image']")
    url = code_image.get_attribute('src')
    # 下载
    r = requests.get(url)
    # 识别验证码
    ocr = ddddocr.DdddOcr()
    res = ocr.classification(r.content)
    print(res)
    browser.find_element(By.XPATH, "//input[@id='ctrltextcode']").send_keys(res)
    browser.find_element(By.XPATH, "//div[@id='ctrlbuttonsubmit']").click()
    time.sleep(10)
    cookie = ""
    for item in browser.get_cookies():
        cookie += item["name"] + "=" + item["value"] + ";"
    print(cookie)
    # 把拿到的cookie放在txt里, 之后爬取数据先拿这里的cookie, 如果过期了再来重新获取
    with open('C:\\Users\\Administrator\\Desktop\\quick_report_crawl\\xxx.txt', 'w') as f:
        f.write(cookie)
except Exception as e:
    print('广点通用户登录失败, 失败原因是: ', e)
# 至此cookie就拿到啦, 后面就是正常的业务代码

一点说明:

  • 安利个巨好用的识别验证码的库<ddddocr> gitHub:https://github.com/sml2h3/ddddocr

  • 可能会在版本上遇到问题,我的报错参考这篇文档解决:https://blog.csdn.net/zhuchengchengct/article/details/124854199

  • 我用的版本作为参考:python是3.9.13,ddddocr是1.4.2

如有问题,欢迎大家批评指正~~文章来源地址https://www.toymoban.com/news/detail-589239.html

到了这里,关于爬虫笔记--Selenium实现有验证码网站模拟登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫-使用Selenium模拟百度登录

        前面我已经安装好了Selenium并模拟成功了一下打开百度页面并进行查询,让我这个python初学者信心倍增,今天再来试一试百度登录 把打开百度的代码放到构造方法中 ps:那个文件目录是用于后面滑块验证图片保存的。 点击右上角的“登录”按钮,打开登录框, 代码如下:

    2024年02月06日
    浏览(53)
  • 使用selenium模拟登录解决滑块验证问题

    目录 1.登录入口 2.点击“账号密码登录” 3.输入账号、密码并点击登录 4.滑块验证过程 5.小结 本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录,如果还是模拟请求,需要的参数太多了

    2024年02月16日
    浏览(39)
  • python selenium模拟登录某网站的滑块拖动操作

    参考文章: https://blog.csdn.net/u010945216/article/details/120838385

    2024年02月16日
    浏览(44)
  • Python爬虫入门:使用selenium库,webdriver库模拟浏览器爬虫,模拟用户爬虫,爬取网站内文章数据,循环爬取网站全部数据。

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目录 准备工具: 思路: 具体操作: 调用需要的库: 启动浏览器驱动: 代码主体:  完整代码(解析注释): Python环境; 安装selenium库; Python编辑器; 待爬取的网站; 安装好的浏览器; 与浏览器版本相对应的

    2023年04月24日
    浏览(55)
  • java爬虫遇到网页验证码怎么办?(使用selenium模拟浏览器并用python脚本解析验证码图片)

            笔者这几天在爬取数据的时候遇到了一个很闹心的问题,就是在我爬取数据的时候遇到了验证码,而这个验证码又是动态生成的,尝试了很多方法都没能绕开这个验证码问题。         我的解决方案是:使用selenium模拟浏览器行为,获取到动态生成的验证码后用

    2024年02月09日
    浏览(106)
  • Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博

    Python网络爬虫之如何通过selenium模拟浏览器登录微博 微博登录接口很混乱,需要我们通过selenium来模拟浏览器登录。 首先我们需要安装selenium,通过pip安装: ``` pip install selenium ``` 然后我们需要下载一个浏览器驱动,推荐使用Chrome,下载地址:http://chromedriver.storage.googleapis.c

    2024年02月03日
    浏览(59)
  • Selenium入门(二)Java整合Selenium实现模拟登录

    上一篇文章已经讲述了Java搭建Selenium环境: Selenium入门(一)Java 搭建 Selenium 环境 下面接着实现模拟登录功能,这里拿自己的网站来进行测试,如下图   这里我把验证码固定了,所以不需要输入验证码即可实现。 实现思路 首先输入登录url,用WebDriver模拟打开登录页面 然后

    2023年04月08日
    浏览(41)
  • 【爬虫】5.4 Selenium 实现用户登录

    目录 任务目标 创建模拟网站 创建服务器程序  键盘输入动作 鼠标点击动作 编写爬虫程序 Selenium 查找的 HTML 元素是一个 WebElemen t对象, 这个对象不但可以获取元素的属性值,而且还能执行一 些 键盘输入send_keys() 与 鼠标点击click() 的动作 我们设计一个实现 用户登录并爬取

    2024年02月13日
    浏览(32)
  • 用Selenium实现滑块验证码登录

    现在很多网站的登录,都采用了拖动图片滑块的验证码方式来进行验证登录,比如哔哩哔哩和京东等。在使用爬虫等自动化程序时,如何通过滑块验证,就成了需要解决的问题。 这里通过大名鼎鼎的ddddocr图片识别库,和模拟浏览器操作的selenium库来实现 安装浏览器driver 首先

    2024年01月22日
    浏览(40)
  • selenium+opencv实现模拟登陆(滑块验证码)

    很多网站登录登陆时都要用到滑块验证码,在某些场景例如使用爬虫爬取信息时常常受到阻碍,想着用opencv的模板匹配试试能不能实现模拟登陆。本来觉得网上资料多应该还蛮容易,但实际上手还是搞了蛮久,在这里记录一下整个流程,网站无所谓主要是要有滑动验证码:

    2023年04月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包