达内烟台中心 > 达内新闻
python爬虫干货大分享!!!(4)
- 发布:烟台达内
- 来源:烟台达内
- 时间:2019-01-30 15:46
烟台达内的小编总结,对于普通图形验证码,如果非常规整且没有变形或干扰,可以使用 OCR 识别,也可以使用机器学习、深度学习来进行模型训练,当然打码平台是最方便的方式。
对于算术题验证码,推荐直接使用打码平台。
对于滑动验证码,可以使用破解算法,也可以模拟滑动。后者的关键在于缺口的找寻,可以使用图片比对,也可以写基本的图形识别算法,也可以对接打码平台,也可以使用深度学习训练识别接口。
对于点触验证码,推荐使用打码平台。
对于手机验证码,可以使用验证码分发平台,也可以购买专门的收码设备,也可以人工验证。
对于扫二维码,可以人工扫码,也可以对接打码平台。
反爬 / 封账号
某些网站需要登录才能爬取,但是一个账号登录之后请求过于频繁会被封号,为了避免封号,可以采取如下措施:
寻找手机站点或 App 站点,此种类别通常是接口形式,校验较弱。
寻找无登录接口,尽可能寻找?无需登录即可爬取的接口。
维护 Cookies 池,使?用批量账号模拟登录,使?时随机挑选可用 Cookies 使?即可,实现:https://github.com/Python3WebSpider/CookiesPool.
加速

当爬取的数据量非常大时,如何高效快速地进行数据抓取是关键。
常见的措施有多线程、多进程、异步、分布式、细节优化等。
加速 / 多线程、多进程
爬虫是网络请求密集型任务,所以使用多进程和多线程可以大大提高抓取效率,如使用 threading、multiprocessing 等。
加速 / 异步
将爬取过程改成非阻塞形式,当有响应式再进行处理,否则在等待时间内可以运行其他任务,如使用 asyncio、aiohttp、Tornado、Twisted、gevent、grequests、pyppeteer、pyspider、Scrapy 等。
加速 / 分布式
分布式的关键在于共享爬取队列,可以使用 celery、huey、rq、rabbitmq、kafka 等来实现任务队列的对接,也可以使用现成的框架 pyspider、Scrapy-Redis、Scrapy-Cluster 等。
加速 / 优化
可以采取某些优化措施来实现爬取的加速,如:
DNS 缓存
使用更快的解析方法
使用更高效的去重方法
模块分离化管控
加速 / 架构
如果搭建了分布式,要实现高效的爬取和管理调度、监控等操作,我们可以使用两种架构来维护我们的爬虫项目。
将 Scrapy 项目打包为 Docker 镜像,使用 K8S 控制调度过程。
将 Scrapy 项目部署到 Scrapyd,使用专用的管理工具如 SpiderKeeper、Gerapy 等管理。
以上就是烟台达内给大家做的内容详解,更多关于IT的学习,请继续关注烟台达内
最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 哈尔滨
- 济南
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 长沙
- 昆明
- 太原
- 无锡
- 石家庄
- 南宁
- 佛山
- 珠海
- 宁波
- 保定
- 呼和浩特
- 洛阳
- 烟台
- 运城
- 潍坊
python爬虫干货大分享!!!(4)
- 发布:烟台达内
- 来源:烟台达内
- 时间:2019-01-30 15:46
烟台达内的小编总结,对于普通图形验证码,如果非常规整且没有变形或干扰,可以使用 OCR 识别,也可以使用机器学习、深度学习来进行模型训练,当然打码平台是最方便的方式。
对于算术题验证码,推荐直接使用打码平台。
对于滑动验证码,可以使用破解算法,也可以模拟滑动。后者的关键在于缺口的找寻,可以使用图片比对,也可以写基本的图形识别算法,也可以对接打码平台,也可以使用深度学习训练识别接口。
对于点触验证码,推荐使用打码平台。
对于手机验证码,可以使用验证码分发平台,也可以购买专门的收码设备,也可以人工验证。
对于扫二维码,可以人工扫码,也可以对接打码平台。
反爬 / 封账号
某些网站需要登录才能爬取,但是一个账号登录之后请求过于频繁会被封号,为了避免封号,可以采取如下措施:
寻找手机站点或 App 站点,此种类别通常是接口形式,校验较弱。
寻找无登录接口,尽可能寻找?无需登录即可爬取的接口。
维护 Cookies 池,使?用批量账号模拟登录,使?时随机挑选可用 Cookies 使?即可,实现:https://github.com/Python3WebSpider/CookiesPool.
加速

当爬取的数据量非常大时,如何高效快速地进行数据抓取是关键。
常见的措施有多线程、多进程、异步、分布式、细节优化等。
加速 / 多线程、多进程
爬虫是网络请求密集型任务,所以使用多进程和多线程可以大大提高抓取效率,如使用 threading、multiprocessing 等。
加速 / 异步
将爬取过程改成非阻塞形式,当有响应式再进行处理,否则在等待时间内可以运行其他任务,如使用 asyncio、aiohttp、Tornado、Twisted、gevent、grequests、pyppeteer、pyspider、Scrapy 等。
加速 / 分布式
分布式的关键在于共享爬取队列,可以使用 celery、huey、rq、rabbitmq、kafka 等来实现任务队列的对接,也可以使用现成的框架 pyspider、Scrapy-Redis、Scrapy-Cluster 等。
加速 / 优化
可以采取某些优化措施来实现爬取的加速,如:
DNS 缓存
使用更快的解析方法
使用更高效的去重方法
模块分离化管控
加速 / 架构
如果搭建了分布式,要实现高效的爬取和管理调度、监控等操作,我们可以使用两种架构来维护我们的爬虫项目。
将 Scrapy 项目打包为 Docker 镜像,使用 K8S 控制调度过程。
将 Scrapy 项目部署到 Scrapyd,使用专用的管理工具如 SpiderKeeper、Gerapy 等管理。
以上就是烟台达内给大家做的内容详解,更多关于IT的学习,请继续关注烟台达内
最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 厦门
- 哈尔滨
- 济南
- 福州
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 大连
- 长沙
- 昆明
- 温州
- 太原
- 南昌
- 无锡
- 石家庄
- 南宁
- 中山
- 兰州
- 佛山
- 珠海
- 宁波
- 贵阳
- 保定
- 呼和浩特
- 东莞
- 洛阳
- 潍坊
- 烟台
- 运城