史上最全Python反爬虫方案汇总( 二 )
文章插图
上面两个不用处理直接可以用OCR识别技术(利用python第三方库--tesserocr)来识别 。
文章插图
背景比较糊
文章插图
清晰可见
经过灰度变换和二值化后,由模糊的验证码背景变成清晰可见的验证码 。
文章插图
容易迷惑人的图片验证码
对于在这种验证码,语言一般自带图形库,添加上扭曲就成了这个样子,我们可以利用9万张图片进行训练,完成类似人的精准度,到达识别验证码的效果
2. 短信验证码用Webbrowser技术 , 模拟用户打开短信的行为,最终获取短信验证码 。
3. 计算题图片验证码
文章插图
把所有可能出现的汉字都人工取出来 , 保存为黑白图片,把验证码按照字体颜色二值化 , 去除噪点,然后将所有图片依次与之进行像素对比,计算出相似值,找到最像的那张图片
4. 滑动验证码
文章插图
对于滑动验证码
我们可以利用图片的像素作为线索,确定好基本属性值,查看位置的差值,对于差值超过基本属性值,我们就可以确定图片的大概位置 。
5. 图案验证码对于这种每次拖动的顺序不一样,结果就不一样,我们怎么做来识别呢?
- 利用机器学习所有的拖动顺序,利用1万张图片进行训练,完成类似人的操作,最终将其识别
- 利用selenium技术来模拟人的拖动顺序,穷尽所有拖动方式,这样达到是别的效果
文章插图
我们不妨分析下:对于汉字而言,有中华五千年庞大的文字库,加上文字的不同字体、文字的扭曲和噪点,难度更大了 。
方法:首先点击前两个倒立的文字,可确定7个文字的坐标 ,验证码中7个汉字的位置是确定的 , 只需要提前确认每个字所在的坐标并将其放入列表中 , 然后人工确定倒立文字的文字序号 , 将列表中序号对应的坐标即可实现成功登录 。
爬虫方法:接入第三方验证码平台 , 实时破解网站的验证码 。
缺点:影响正常的用户体验操作 , 验证码越复杂 , 网站体验感越差 。
实现难度:★★通过robots.txt来限制爬虫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件 , 它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛) , 此网站中的哪些内容是不应被搜索引擎的漫游器获取的 , 哪些是可以被漫游器获取的 。 因为一些系统中的URL是大小写敏感的 , 所以robots.txt的文件名应统一为小写 。 robots.txt应放置于网站的根目录下 。 如果想单独定义搜索引擎的漫游器访问子目录时的行为 , 那么可以将自定的设置合并到根目录下的robots.txt , 或者使用robots元数据(Metadata , 又称元数据) 。
robots.txt协议并不是一个规范 , 而只是约定俗成的 , 所以并不能保证网站的隐私 。 注意robots.txt是用字符串比较来确定是否获取URL , 所以目录末尾有与没有斜杠“/”表示的是不同的URL 。 robots.txt允许使用类似"Disallow: *.gif"这样的通配符 。
itunes的robots.txt
文章插图
缺点:只是一个君子协议 , 对于良好的爬虫比如搜索引擎有效果 , 对于有目的性的爬虫不起作用
爬虫方法:如果使用scrapy框架 , 只需将settings文件里的ROBOTSTXT_OBEY 设置值为 False
实现难度:★数据动态加载python的requests库只能爬取静态页面 , 爬取不了动态加载的页面 。 使用JS加载数据方式 , 能提高爬虫门槛 。
爬虫方法:
- 抓包获取数据url
示例:
- 看这部分的包 。 可以看到 , 这部分包里面 , search下面的那个 url和我们访问的地址完全是一样的 , 但是它的response却包含了js代码 。
文章插图
2. 当在动物图片首页往下滑动页面 , 想看到更多的时候 , 更多的包出现了 。 从图片可以看到 , 下滑页面后得到的是一连串json数据 。 在data里面 , 可以看到thumbURL等字样 。 它的值是一个url 。 这个就是图片的链接 。
- 广告点击|广告效果评估:30天的广告时间评估最全面
- 主题|GNN、RL崛起,CNN初现疲态?ICLR 2021最全论文主题分析
- 史上最短命旗舰!为了华为P50:Mate40部分机型疑似停产
- 告诉|阿里大佬告诉你如何一分钟利用Python在家告别会员看电影
- Python源码阅读-基础1
- Python调用时使用*和**
- 如何基于Python实现自动化控制鼠标和键盘操作
- 解决多版本的python冲突问题
- 学习python第二弹
- Python中文速查表-Pandas 基础