一份可以找工作的爬虫学习大纲
来源:
奇酷教育 发表于:
爬虫学到什么程度可以找工作?
一份可以找工作的爬虫学习大纲
开 篇
爬虫学到什么程度可以找工作?
爬虫的本质是模拟人的操作,发起请求,获取正确的服务器返回的数据。所以网络这一块需要相对熟悉,尤其是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爬虫,人肉爬虫
以上调查完成后,再去确定你要选择的爬取方式。