爬虫知识储备篇---分析http请求

(1)、为何需要进行HTTP请求分析

答:方便我们编写的爬虫精准定位爬取目标

(2)、知识储备

1、什么是抓包?

抓包:抓取客户端与服务器之间进行通信时产生的数据包

2、了解抓包工具:chrome下的开发者模式,使用F12即可打开

功能结构分析:(参考文档:http://www.css88.com/doc/chrome-devtools/)

Elements(元素面板):用于查看网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能在浏览器中得到实时反馈

Console(控制台面板):在开发过程中,记录诊断信息,或用来作为shell在页面中与javascript进行交互

Source(源代码面板):断点调试javascript,或通过Workspaces(工作区)连接本地文件来使用开发者工具的实时编辑器

Network(网路面板):从发起页面请求Request后分析HTTP请求后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间等)

Performance(性能面板):使用时间轴面板通过记录和查看网站生命周期内发生的各种事件来提高页面的运行性能

Memory(内存面板):分析web应用或页面的执行时间及内存使用情况

Application(应用面板):记录网站加载的所有资源信息,包括存储数据(local storage session storage -lndexedDB web SQL Cookies)缓存数据、字体、图片、脚本、样式表等

Security(安全面板):用来调试混合内容问题、证书问题等

Audits(审核面板):对当前网页进行网络利用情况、网页性能方面的诊断,并给出优化建议,例如列出所有没有用到的CSS文件等

(3)、主要面板使用详解

Elements(元素面板)--相当于在源码与渲染好的页面间搭建的桥梁,直观的看到你要抓取的数据(当我们在页面中右击找二手房后并选取检查后,会在element中定位相应的源码)



Console(控制台面板)--注入js代码用于操作浏览器干活

运行后我们成功打开了淘宝页面



Network(网路面板)

1、Controls(控件):用来控制Network面板的外观和功能

2、Filters(过滤器):用来筛选请求列表中显示哪些资源(注:windows/linux中按住ctrl,可选多个过滤器、Mac中则按住Cmd)

3、Overview(概览):用来记录每个链接何时开始加载、何时加载完毕

4、Request Table(请求列表):展示了每一个链接的请求(默认按时间排序)

5、Summary(概要):展示请求总数、传输的数据量和加载时间

备注:使用ctrl +shift +n 进入无痕模式进行抓包

1、controls:

说明:禁用缓存:现代浏览器的智能化决定了当你刷新页面时,其实只刷新了一部分内容(从服务器返回)而另一部分从本机的缓存中调用,而勾选这个选项表明刷新全部内容(即全从服务器返回)--能更加真实的了解服务器返回的内容

2、filter:

使用过滤器:

关键字查询:

1、domain(域)

显示指定域的资源。例子:*.com显示.com结尾的域名中的资源

2、has-response-header(响应头信息)

显示指定http响应头的信息资源。

3、ls

使用is:running过滤出WebSocket资源

4、langer-than(大于)

显示大于指定大小的资源(已bytes为单位),设置值1000等效于设置值1k。

5、method(方法)

显示通过指定http方法检索的资源。

6、mime-type(mine类型)

显示指定mine类型的资源。

7、mixed-content(混合内容)

显示所有混合内容的资源(mixed-content:all)\ 显示当前显示的内容(mixed-content:displayed)

8、scheme(协议)

显示通过不受保护的http(scheme:http)或受保护的https(scheme:https)检索的资源

这里补充一个小知识点:https是在http基础上有SSL,其中包含CA证书

9、set-cookie-domain(cookie域)

显示具有Set-Cookie头且domain属性与指定值匹配的资源。

10、set-cookie-name(cookie名)

显示具有Set-Cookie头且名称与指定值匹配的资源。

11、set-cookie-value(cookie值)

显示具有Set-Cookie头且值与指定资源匹配的资源。

12、status-code(状态吗)

显示http状态码与指定代码匹配的资源

这里补充一个小知识点:2---表示成功  3-- 表示重定向 4--服务器出错 5-- 客户端出错

实验:

复制、保存、清除网络信息:

查看资源发起者和依赖者的关系(类比为:母子)

原文地址:https://www.cnblogs.com/518894-lu/p/9126422.html

时间: 2024-11-08 09:42:14

爬虫知识储备篇---分析http请求的相关文章

OC学习之知识储备篇

1. Objective-C是基于C语言的. a. 在C语言的基础之上新增了面向对象的语法. b. 将C语言中复杂的.繁琐的语法封装的更为简单. 2. Objective-C程序的源文件的后缀名.m  message  消息机制. C程序的源文件的后缀名是.c 3. main函数仍然是Objective-C程序的入口和出口. main函数的参数可以有 也可以没有. 参数的功能: 在终端单独运行程序的时候 可以让用户直接传入一些数据进来. 返回值: 代表程序结束的状态. 0代表正常结束. 非0代表

scrapy-redis实现爬虫分布式爬取分析与实现

一 scrapy-redis实现分布式爬取分析 所谓的scrapy-redis实际上就是scrapy+redis其中对redis的操作采用redis-py客户端.这里的redis的作用以及在scrapy-redis的方向我在自己fork的repository(链接:)已经做了翻译(README.rst). 在前面一篇文章中我已经借助两篇相关文章分析了使用redis实现爬虫分布式的中心.归结起来就是:所有爬虫获取到的url(request)都放到一个redis queue中,并且所有爬虫都从单个r

自定义控件知识储备-LayoutParams的那些事

在上一篇文章里,我总结了一下自定义控件需要了解的基础知识:View的绘制流程--<自定义控件知识储备-View的绘制流程>.其中,在View的测量流程里,View的测量宽高是由父控件的MeasureSpec和View自身的LayoutParams共同决定的.MeasureSpec是什么,上一篇文章里已经说得很清楚了(啥,没看过?快去路克路克,(??????)??).而LayoutParams呢?是时候在这里做个了断了. LayoutParams是什么? LayoutParams,顾名思义,就是

为WCF增加UDP绑定(储备篇)

日前我开发的服装DRP需要用到即时通信方面的技术,比如当下级店铺开出零售单时上级机构能实时收到XX店铺XX时XX分卖出XX款衣服X件之类的信息,当然在上级发货时,店铺里也能收到已经发货的提醒.即时通信技术能运用到DRP系统的很多方面,若深入下去,甚至可以开发一个系统内部的通讯模块,类似于QQ.当前大部分的企业管理系统开发类似功能,使用的都是效率及其低下的定时拉数据的方式,即每隔一段预定时间去数据存储区(一般为数据库)读取数据,然后在代码层判断,若数据同内存数据一致则丢弃,否则更新内存数据并同步更

从session实现机制分析模拟请求验证码的可行性(转)

悲剧了,发现写完这篇blog没有配上这个格调超高的标题. 1.0问题背景 现在要实现一个带验证码网站的的自动登陆功能.验证码识别过程不再这篇文章的讨论之中.(之后有篇文章我会详细的总结验证码的识别过程).现在问题来了,怎么拿到你本次请求登陆页面的验证码图片? 2.0方案分析 现在有几种思路: (1)请求登陆页面,截取验证码图片,类似截屏,seleinum,webbrower的DrawToBitmap()等. (2)还是webbrower,将图片复制到剪切板在从剪切板中搞出来 HTMLContro

阿里知识储备之二——junit学习以及android单元测试

一,junit框架 http://blog.csdn.net/afeilxc/article/details/6218908 详细见这篇博客 juit目前已经可以和maven项目进行集成和测试,而且貌似不需要单独引入junit的组件就可以(maven自身已经引入?) 注意一下以下几个标记 @BeforeClass,@Before,@Test(timeout = 50),@After,@Before,@Test(expected = Exception.class),@After,@Before,

接口测试学习入门(1)--前期知识储备

接口测试前必需知识了解:1.接口测试的原理: 无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程. 2.前期知识储备2.1 http知识了解(详见 http://www.blogjava.net/zjusuyong/articles/304788.html 写的很棒!) http端口号 80,不输入默认就是, https端口号 443,基于SSL https加密原理:

新手程序员必备的知识储备有哪些

很多学习了北风网专业课程的朋友,都能如愿到心仪的相关企业任职,首先,北风网向你们表示祝贺,同时关于新手程序员所需要的知识储备情况,特此总结了一篇文章,以供参考: 1.版本控制系统(VCS) VCS 也许是计算机课程最大的疏漏.这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码.每一个程序员都应该懂得利用 Git 或 Subversion 有效地创建 repository(仓库),编辑与提交代码,进行分支与合并,了解项目工作流. 2.学会写作 身为程序员要写的不只有代码.你还要写项目的发

爬虫知识总结

阅读目录 第一篇:爬虫基本原理 第二篇:请求库之requests,selenium 第三篇:解析库之re.beautifulsoup.pyquery 第四篇:存储库之mongodb,redis,mysql 第五篇:爬虫高性能相关 第六篇:Scrapy框架 第七篇:分布式爬虫 参考资料:http://www.cnblogs.com/linhaifeng/p/8241221.html 原文地址:https://www.cnblogs.com/supery007/p/8361451.html