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

471 阅读6分钟

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

  开 篇

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

  爬虫的本质是模拟人的操作,发起请求,获取正确的服务器返回的数据。所以网络这一块需要相对熟悉,尤其是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。小编推荐一个学python的学习老师围鑫(同音),前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!内有开发工具,很多干货和技术资料分享!

  主要目的就是为了获取app的请求,进行分析。毕竟app没有像浏览器一样,有自带的网络分析调试工具。

  进阶篇

  一、如何快速吃牢饭——加速

  (1)理解阻塞、非阻塞、同步、异步、并发、并行概念

  (2)熟悉python队列的使用以及MQ的概念

  (3)多进程、进程池和进程间通信

  (4)多线程、线程封装、线程全局变量、线程互斥、守护线程以及join的用法

  (5)协程、yield关键字、gevent、猴子补丁、asyncio

  (6)异步请求轮子aiohttp

  (7)常见解决方案:多线+异步(scrapy的原理)或 多进程+异步

  二、框架在手,天下我有——轮子真香

  爬虫领域,只此一家——scrapy。

  官方教程:scrapy-chs.readthedocs.io/zh_CN/0.24/…

  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 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。

  官方文档:docs.grafana.org/

  实际项目经验

  实际项目经验才是真正的开始:

  ·爬过哪些网站?

  ·日均最大采集量是多少?

  ·你遇到哪些棘手问题,如何解决?

  真正的开始

  1.去各大学习论坛提问

  2.去百度和谷歌搜下这个网站有没有人分享出你要爬数据的API

  3.看看电脑网页有没有你要的数据,写点代码测试调查下好不好拿,不管好不好拿,也不要急着就开爬

  4.看看有没有电脑能打开的手机网站,一般格式为m.xxx.com或

  mobile.xxxx.com,有的话可以用F12检查抓下包,看下抓取难易程度

  5.看看有没有手机App,抓下App的包,看能不能抓到接口,如果新版抓不到,可以尝试旧版本。小编推荐一个学python的学习老师围鑫(同音),前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!内有开发工具,很多干货和技术资料分享!

  6.尝试分析app的一些分享外链

  7.抓下公众号和小程序的包,看能不能抓到接口

  8.都不好弄的话,尝试的话selenium/airtest

  9.最高境界:web端破解js 移动端逆向破解

  10.放弃抵抗:js爬虫,人肉爬虫

  以上调查完成后,再去确定你要选择的爬取方式。