我们在爬虫过程中难免会遇到一些拦路虎,比如各种各样的验证码,时不时蹦出来,这时候我们需要去识别它来继续我们的工作,接下来我将爬取网一些滑动验证码,然后通过百度的EasyDL平台进行数据标注,创建模型,训练模型,测试模型,看看是否能返回目标框的相应坐标,然后我们再使用selenium进行滑动到相应位置,这样就破解了验证码。后面我将用几个系列来阐述一下我们的内容。

首先,我们先看下爬取的效果,详情点击公众号地址,有视频。

思路:一开始我去查看能不能直接调用接口获取图片,发现看看不是那么容易,找到了相应的接口,但是模拟接口却很困难,里面有token,jsonp之类的。后来直接截取图片好了,简单粗暴。

步骤如下:

前提是有python环境,先把python安装好。

1.pip install selenium

2.下载chrome_driver.exe,利用它来启动谷歌浏览器,以下是网址,我们需要下载电脑谷歌对应的版本,我下载的是chromedriver_win32.zip,版本号是84.0.4147.89,解压内有一个exe文件,放到谷歌的安装目录。

https://sites.google.com/a/chromium.org/chromedriver/downloads

3.添加环境变量,将谷歌的安装目录加入环境变量。

4.测试

 from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://dun.163.com/trial/jigsaw')

5.测试成功之后,我们就可以开始爬取滑动验证码图片,上代码

 driver = webdriver.Chrome()
driver.implicitly_wait(3)
driver.maximize_window()
driver.get('https://dun.163.com/trial/jigsaw')
# 鼠标移动到此元素
yidun_tips = driver.find_element_by_class_name('yidun_tips')
action = ActionChains(driver)
for i in range(1000):
action.move_to_element(yidun_tips).perform()
driver.implicitly_wait(5)
driver.save_screenshot('webpages/'+str(int(time.time()))+".png")
driver.find_element_by_class_name("yidun_refresh").click()
driver.implicitly_wait(5) sleep(2)
driver.quit()
 

这段代码会打开网页,找到相应元素,触发hover事件,自动点击refresh按钮,刷新图片,然后我们进行截取保存。

6.截取验证码区域

 import cv2 as cv
import os # 获取文件名
file_names = os.listdir("webpages/")
print(file_names)
# 文件名拼接路径
file_list = [os.path.join("./webpages/",file) for file in file_names] #裁剪坐标为[y0:y1, x0:x1]
for i in range(len(file_list)):
src=cv.imread(file_list[i])
dst=src[651:851,945:1345]
cv.imwrite('dist/'+(str(i+1))+'.png',dst)
cv.waitKey()

后面我们就打包数据集上传到EasyDL平台,进行数据标注,训练。

selenium自动爬取网易易盾的验证码的更多相关文章

  1. 用selenium 自动爬取某一本小说章节及其内容,并存入数据库中

    from selenium import webdriver import pymysql from selenium.webdriver.support.ui import WebDriverWai ...

  2. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  3. selenium异步爬取(selenium+Chromedriver)

    在我们进行数据爬去的过程中,我们有时候会遇到异步加载信息的情况,以豆瓣电影分来排行榜为例,当我们在查看数据的过程中,会发现网页源码中并不包含我们想要的全部数据,但是当我们在进行向下滚动的时候,数据会一 ...

  4. 【原创】Python 网易易盾滑块验证

    本文仅供学习交流使用,如侵立删! 记一次 网易易盾滑块验证分析并通过 操作环境 win10 . mac Python3.9 selenium.PIL.numpy.scipy.matplotlib 分析 ...

  5. 使用Jsoup 爬取网易首页所有的图片

    package com.enation.newtest; import java.io.File; import java.io.FileNotFoundException; import java. ...

  6. python网络爬虫之使用scrapy自动爬取多个网页

    前面介绍的scrapy爬虫只能爬取单个网页.如果我们想爬取多个网页.比如网上的小说该如何如何操作呢.比如下面的这样的结构.是小说的第一篇.可以点击返回目录还是下一页 对应的网页代码: 我们再看进入后面 ...

  7. 网易易盾最新一代Java2c加固究竟有什么厉害之处?

    导语:几个月前,网易易盾正式推出Java2c加固.它以独有的"静态保护"技术,使得应用程序中的代码出现"下沉",达到不可逆的效果,兼顾"冷热启动时间& ...

  8. 如何手动写一个Python脚本自动爬取Bilibili小视频

    如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...

  9. [python爬虫] Selenium定向爬取PubMed生物医学摘要信息

    本文主要是自己的在线代码笔记.在生物医学本体Ontology构建过程中,我使用Selenium定向爬取生物医学PubMed数据库的内容.        PubMed是一个免费的搜寻引擎,提供生物医学方 ...

随机推荐

  1. npm -v 报错:Error: EPERM: operation not permitted, mkdir 'C:\soft\nodejs'

    npm -v 报错:Error: EPERM: operation not permitted, mkdir 'C:\soft\nodejs' 起因:原本安装node在C盘soft文件夹下,按node ...

  2. ceph bluestore与 filestore 数据存放的区别

    一. filestore 对象所在的PG以文件方式放在xfs文件中 1 查看所有的osd硬盘,跟其他linux其他硬盘一样,被挂载一个目录中. [root@hz-storage1 ~]# df -h ...

  3. mybatis源码配置文件解析之五:解析mappers标签流程图

    前面几篇博客分析了mybatis解析mappers标签的过程,主要分为解析package和mapper子标签.补充一张解析的总体过程流程图,画的不好,多多谅解,感谢.

  4. (私人收藏)java实例、知识点、面试题、SHH、Spring、算法、图书管理系统、综合参考

    https://pan.baidu.com/s/1hkmgJU6pf2sBjNV1NlOaNgr6l2 Java趣味编程100例java经典选择题100例及答案java面试题大全java排序算法大全j ...

  5. 详解GaussDB bufferpool缓存策略,这次彻底懂了!

    摘要:华为云GaussDB(for mysql)是华为云自主研发的最新一代云原生数据库,采用计算存储分离.日志即数据的架构设计.具备极致可靠.极致性价比.多为扩展.完全可信等诸多特性. 一 .Gaus ...

  6. Sightseeing,题解

    题目: 题意: 找到从s到t与最短路长度相差少于1的路径总数. 分析: 首先,搞明白题意之后,我们来考虑一下怎么处理这个1,怎样找相差为1的路径呢?我们这样想,如果有相差为1的路径,那么它将会是严格的 ...

  7. 无题 II 二分图最大匹配

    题目描述 这是一个简单的游戏,在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小. Input 输入一个整数T表示T组数据. 对于每组数据第一行输 ...

  8. BUUCTF-Misc-No.1

    # BUUCTF-Misc # 签到 flag{buu_ctf} 金三胖 说实话直接看出来flag{he11ohongke} 二维码 直接binwalk扫一下,-e分离就出来一个带锁的zip爆破一下就 ...

  9. 使用virtualBox 创建虚拟机

    第一次使用感觉并没有VMware好用,尤其是鼠标在虚拟机和宿主机之间切换的时候很烦,需要按键盘右边ctrl虽然有提示right ctrl但是第一次使用硬是折腾了好半天.感觉不记录一下对不起这个下午. ...

  10. JS基础知识点(二)

    == 与 === 对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换,就会进行如下判断流程: 1.首先会判断两者类型是否相同,相同则会进行严格相等比较=== 2.判断是否在对比null和 ...