爬虫学习路线-自动化,80%需求有手就行
法律风险
什么能采集,什么不能采集!
有哪些法律风险和那些红线都要清楚。
不然嘎一天突然进去了都不知道为什么进去了。
我之前还看到有人采集电话号码赚几百块钱还发视频炫耀的,这种都是典型的反面教材,这种采集想都不要想,他还采集了拍下自己的犯案证据。然后我赶紧提醒了下他,他把视频隐藏了。
趁手的编辑器(写代码的工具)
工欲善其事必先利其器,
写代码:vscode,webstorm(刚免费),pycharm(有免费版),
浏览器(网页爬虫必备):谷歌浏览器,
笔记软件:typora(本地),语雀(在线笔记)
需要用到的环境(先汇总下,可以等用到的时候再装也不迟):python环境,nodejs环境
前端基础(爬虫要爬的内容)
什么是html,什么是css,什么是js,分别都是干嘛的,基础的常用的可以过一遍。
比如说常用的html结构标签,常用的css样式,js已经属于编程语言正规军了,需要会常用的语法,数据结构,js里面的函数对象这些,很多编程语言基础的概念都是想通的,跟后面python差不多。
然后什么是nodejs,nodejs与浏览器环境有哪些不同。
浏览器也要会使用一些基本操作,比如查看页面源代码,网站源代码,网络请求等基本的操作。
网络基础
会点网络的基础概念知识,比如说什么是robots协议,什么是域名,什么是ip,什么是端口,dns解析,http协议,请求方法,http状态码,
Python基础(库多,生态成熟,每个环节都有解决方案,语法简单)
是个编程语言都涉及到的基础操作:判断循环,加减乘除,函数
常用的数据结构,列表,元组,字典,集合这些分别有什么特性,适用于哪些场景。
深拷贝浅拷贝,
函数对象,集成封装多态这些,有对象的语言都有的这些概念
常用的三方库,数据处理,网络请求的,做做了解
看后可以学习点语言专有的语法糖,高级语法等,比如说海象运算符
文件存储(采集的数据总得存起来)
文件存储
json,csv,txt
pandas
数据库(非必须)
mysql,redis,mongodb,
sqlalthemy,Tortoise orm,django-orm,pymongo
浏览器相关如开发者工具(非必须)
(自动化不太需要这些)
hook,断点调试代码,一些浏览器插件油猴脚本
数据采集三方库/框架
lxml(解析网页使用xpath提取),bs4,pyquery。我常用的只有lxml的xpath,有那种标签的,css的定位方式,之前学过也忘了,数量使用一种就行了,都大差不差的,这个能干的那个也能干。
re(正则表达式,正则表达式毁灭世界)
requests,Scrapy(异步架构,快速、并发地进行采集),DrissionPage(新兴国产自动化框架,基于cdp协议与浏览器通信实现自动化,后来居上),Selenium(经典自动化框架,通过webdriver驱动与浏览器通信实现自动化),aiohttp(单线程并发IO,基于asyncio实现的HTTP框架)
锦上添花:Crawlab(scrapy项目管理)
验证码-机器学习(我还没学到)
训练模型,过验证码这些
总结
整个过程其实还是很简单的,很多技术都不需要深入了解就可以掌握这个自动化的技术栈,但是如果要去逆向扣代码的话就不一样了,很多技术和操作你需要去熟练掌握才能做出来,不再像自动化漂浮在表面。
js逆向(我还没学到)
ast,ob混淆/托混淆,补环境,扣代码,工具。框架