您现在所在的位置:首页 >关于奇酷 > 行业动态 > 一份可以找工作的爬虫学习大纲

一份可以找工作的爬虫学习大纲

来源:奇酷教育 发表于:

爬虫学到什么程度可以找工作?

  一份可以找工作的爬虫学习大纲
 
  开 篇
 
  爬虫学到什么程度可以找工作?
 
  爬虫的本质是模拟人的操作,发起请求,获取正确的服务器返回的数据。所以网络这一块需要相对熟悉,尤其是http协议。在此基础上,开启脱发之旅吧!
 
  敲黑板:必要部分
 
  ·语言选择:一般是了解Python、Java、Golang之一
 
  ·熟悉多线程编程、网络编程、HTTP协议相关
 
  ·开发过完整爬虫项目:最好有全站爬虫经验
 
  ·反爬相关:cookie、ip池、验证码等等
 
  ·熟练使用分布式
 
  非必要部分
 
  ·了解消息队列,如RabbitMQ、Kafka、Redis等
 
  ·具有数据挖掘、自然语言处理、信息检索、机器学习经验
 
  ·熟悉APP数据采集、中间人代理
 
  ·大数据处理
 
  ·数据库Mysql,redis,mongdb
 
  ·熟悉Git操作、linux环境开发
 
  ·读懂js代码,这个真的很重要
 
  一份可以找工作的爬虫学习大纲
 
  基础篇
 
  基础篇
 
  一、迈出吃牢饭的第一步:cc攻击
 
  关于requests需要学习的知识点:
 
  发送请求
 
  添加参数
 
  设置请求头
 
  设置代理ip(或者使用第三方服务)
 
  网络异常处理
 
  Json数据如何处理
 
  二、没有技术含量的体力活——xpath,css,re
 
  json的话,有很多解析库,直接转为字典处理就行。
 
  html的话,xpath,css,re都可以。
 
  js的话,那就re,但有时候,返回的js经过re的处理,可以转为html或者json。
 
  三、抢别人的饭碗——Selenium自动化测试工具
 
  配置环境
 
  定位元素,获取属性与文本
 
  动作链:点击,移动,拖拽,按键
 
  下拉框,弹窗,iframe,标签操作
 
  显示等待与隐式等
 
  提高效率,设置UA与代理
 
  四、Web也就那样了——APP爬虫
 
  越来越多的公司转向移动端,web端只留给你一个app二维码。
 
  常见的抓包工具:Fiddler,Wireshark,Charies。
 
  主要目的就是为了获取app的请求,进行分析。毕竟app没有像浏览器一样,有自带的网络分析调试工具。
 
  进阶篇
 
  进阶篇
 
  一、如何快速吃牢饭——加速
 
  (1)理解阻塞、非阻塞、同步、异步、并发、并行概念
 
  (2)熟悉python队列的使用以及MQ的概念
 
  (3)多进程、进程池和进程间通信
 
  (4)多线程、线程封装、线程全局变量、线程互斥、守护线程以及join的用法
 
  (5)协程、yield关键字、gevent、猴子补丁、asyncio
 
  (6)异步请求轮子aiohttp
 
  (7)常见解决方案:多线+异步(scrapy的原理)或 多进程+异步
 
  二、框架在手,天下我有——轮子真香
 
  爬虫领域,只此一家——scrapy。
 
  官方教程:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html
 
  scrapy是一个python爬虫框架。我们自己用requests也能写爬虫(GET某个URL,然后Parse网页的内容)。
 
  (1)理解五大模块与两大中间件的概念和作用
 
  (2)熟悉scrapy流程和配置
 
  (3)如何更换为其他数据库
 
  三、程序员之间的爱恨情仇——高级的反爬
 
  验证码与js加密
 
  (1)验证码常见的有:
 
  纯数字
 
  纯英文
 
  英文加数字
 
  计算题
 
  12306分类选择
 
  点选成语
 
  手机验证码
 
  滑动验证码
 
  特殊轨迹拖动
 
  拖动旋转图片
 
  (2)验证码这里不考虑上机器学习的话,
 
  常用的几种方案:
 
  使用cookie来避免一部分验证码
 
  Tesseract-OCR识别工具
 
  使用第三方打码平台
 
  (3)js加密,嗯~~,烧头发的东西。关于js需要掌握的知识:
 
  (1)如何处理代码混淆
 
  (2)时间戳和哈希
 
  (3)PyExecJS库的使用
 
  (4)浏览器网络分析工具
 
  (4)App逆向,嗯~~,更烧头发。
 
  反编译工具的使用
 
  Android基本文件结构
 
  App调试与抓包
 
  常见四种加固方式
 
  四、建一个情报系统——爬虫监控可视化
 
  (1)Gerapy
 
  Gerapy是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发。
 
  (2)Grafana
 
  Grafana是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。
 
  官方文档:http://docs.grafana.org/
 
  实际项目经验
 
  实际项目经验才是真正的开始:
 
  ·爬过哪些网站?
 
  ·日均最大采集量是多少?
 
  ·你遇到哪些棘手问题,如何解决?
 
  真正的开始
 
  1.去各大学习论坛提问
 
  2.去百度和谷歌搜下这个网站有没有人分享出你要爬数据的API
 
  3.看看电脑网页有没有你要的数据,写点代码测试调查下好不好拿,不管好不好拿,也不要急着就开爬
 
  4.看看有没有电脑能打开的手机网站,一般格式为http://m.xxx.com或
 
  http://mobile.xxxx.com,有的话可以用F12检查抓下包,看下抓取难易程度
 
  5.看看有没有手机App,抓下App的包,看能不能抓到接口,如果新版抓不到,可以尝试旧版本
 
  6.尝试分析app的一些分享外链
 
  7.抓下公众号和小程序的包,看能不能抓到接口
 
  8.都不好弄的话,尝试的话selenium/airtest
 
  9.最高境界:web端破解js 移动端逆向破解
 
  10.放弃抵抗:js爬虫,人肉爬虫
 
  以上调查完成后,再去确定你要选择的爬取方式。