浏览器抓取网页(深入理解网络协议原理及实现方法-python编程实战博客)
优采云 发布时间: 2021-11-06 23:02浏览器抓取网页(深入理解网络协议原理及实现方法-python编程实战博客)
浏览器抓取网页的方法还是有很多的。一般地,大家比较常用的一种是通过post的方式来提交数据,这个方法实现在网页上写post的header,等待服务器处理成功后把资源返回给浏览器。这种方法对于后台非常安全的网站,效果还是比较明显的,但对于比较安全的网站就稍有不足。另一种方法是提交请求,要等网页处理完成再返回,这个方法很有意思,就是需要你会编程,因为你得先构造一个过滤器把那些不知名的抓取器列出来然后把那些数据拦截走。
具体可以看一下最近写的两篇关于post和get请求处理的两篇。实现自己需要的第三方登录和异步加载功能--深入理解网络协议原理及实现方法-python编程实战博客第三篇主要讲的是其get请求,用我编写的一个js小例子来加深理解。步骤如下,先爬取http1.1(请求路径)和登录页(请求地址)的url,然后让客户端抓包的时候等到以上路径,然后爬到请求地址的cookie(cookie值),然后抓包的时候加入到http1.1的request里面。
最后让客户端处理登录页面(登录页用一个ie浏览器登录即可,具体cookie如何处理需要具体学习)即可。处理登录页(抓包后加入cookie)抓包处理登录页(爬取登录页的cookie)post请求:request.url=//url(请求的路径)(需要修改cookie的路径),必须用webshell(需要有js),然后根据路径传递cookie路径到请求地址,然后等待返回数据。
post是webshell的写法之一,用来在客户端把数据上传到服务器端,是不会返回自己cookie的。我们在客户端可以用如下方法加上cookie保存cookie过路由请求(request.url=//request.url),这是一个post请求,不用multipart或json格式的,这个cookie是base64格式,因为数据只是存在于浏览器一个cookie里,那么你如果用json格式你就丧失了加密过的特性。
multipart/json是post请求返回给服务器端用以加密数据的格式。如果服务器需要保存数据用get请求,这个本身没什么问题,但如果你要把数据传给服务器,服务器不一定需要保存。简单的说,request需要客户端加上cookie传递,服务器返回的只是一串字符串。在multipart/json格式的post请求中,服务器不再需要存储数据(这里服务器存放的就是一个转换生成的字符串),而是用map表示数据序列,然后传输的数据如果是以$开头的,那么可以认为服务器把该数据映射到了一个json格式,如果是以$_._开头的,那么服务器把该数据编码成一个list,然后返回给你。理论上讲,不存在密码之类的保存在cookie里的数据,只有这些数据被称为。