###
爬虫是一个横向的岗位,你要多学习才可以,
###
网络协议
你要知道7层网络协议,
要知道tcp,udp,tcp的三次握手,四次挥手
要知道http的原理,https
要知道输入一个网址,回车之后,发生了什么?
###
抓包工具
fiddler,Charles,wareshark,
python的抓包软件:mitmproxy,
学习抓包工具的常见的使用,
####
逆向环境的软件安装
nodejs
fiddler
Chrome
pycharm
###
谷歌浏览器的开发者工具怎么使用?
这个开发者工具是非常强大的,你真的了解这个工具吗????
element面板,
第一点,这个地方是js和css渲染之后的页面,不是原始页面,
第二点,这个地方还可以打断点,用过吗?
第三点,可以copy xpath,
第四点,可以修改删除html内容,但是刷新就会还原,
console面板
第一点,可以直接js调试,
source面板,源代码面板,可以断点js调试,
调到下一个断点,一步步调试,进入子函数,跳出子函数,
这个面板很重要!!!
介绍:
这个面板有四部分,
1,左侧的资源列表,目标这个网页加载的所有的资源都在这里,
2,中间是某一个资源的详情,鼠标放到上面可以看到更加详细的内容,
3,右侧是一些断点的操作,比如下一步,还有断点的方法,
4,底部是一个控制台,
js调试实战案例
打开一个网站,打开控制台,进入source面板,
在左侧选中一个js资源,
1,在中间资源的详细情况,点击左侧的数字标号,可以增加一个断点,断点的意义是在执行这一句代码的前一刻会停止,记住是前一刻,
鼠标选中这一行代码,可以看到执行的结果,这个时候也可以在底部的控制台,进行调试,比如输入变量查看变量的情况,
鼠标放到断点这一行,如果是一个变量是可以变量的具体的值得,
如果是一个函数,悬停之后,点击这个函数名是可以进入这个函数的,但是如果一个js内核函数,native code,这个就不能点击进入查看了,
在行号上面右键点击,可以选择never pause here ,这个是永远不在这个地方暂停,可以用来对抗无限debug的场景,
2,右侧第一个按钮,播放按钮,可以跳转到下一个断点,
第二个按钮,半圆形的按钮,是单步调试,遇到子函数不会进去,
第三个按钮,向下的箭头,是单步调试,可以进入子函数执行,
第四个按钮,向上的箭头,这个是比如你在调试的时候进入了一个函数,但是你不想看这个函数了,可以点击这个按钮,跳出这个函数,
第六个按钮,按钮覆盖删除线,这个是可以启用断点和取消断点,
3,右侧的按钮下面是堆栈的信息,
threads,这是线程,有的网站是没有这个线程的,
watch,这个可以监控一个变量,
call strack,这是调用堆栈,是一个堆栈的调用链,
scope,这个可以看到所有的堆栈和函数的情况,可以看到这个函数的api,
breakpoint,这个是你手动打的断点,可以点击定位到断点,可以移除断点,
XHR/fetch breakpoint,用这个断点可以找入口函数,后面讲解,
DOM breakpoint,这个就是在element里面打的dom断点,
network,网络面板
是Chrome自带的抓包工具,但是抓到的都是应用层的内容,
左侧是请求列表
右侧是请求的详情,
header,这个请求头,
preview,这个请求结果预览,这个如果html,可以看到渲染后的页面,如果是json,可以看到json格式的内容,
response,这个请求响应,
initiater,这个很重要,可以帮助我们溯源,可以看到每一个请求是谁发起的,点击可以跳转,
timing,时间性能,
performance和memory,这两个面板是性能面板和内存面板,很少用,
application,应用面板,里面可以查看cookie,删除cookie,编辑添加cookie,
####
抓包工具的使用
中间人攻击,
#
####