打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python爬虫应用指南之基础知识

下方查看历史精选文章

重磅发布 - 自动化框架基础指南pdfv1.1
大数据测试过程、策略及挑战

测试框架原理,构建成功的基石

在自动化测试工作之前,你应该知道的10条建议

在自动化测试中,重要的不是工具

Python适合在诸多领域的应用,作为软件测试从业者,具备一定的自动化测试基础,再去开展Python爬虫工程应用是更加有优势的。

本系列《Python爬虫应用指南》为笔者结合多年自动化测试实践,结合未来自动化测试发展而编写的系列文章,主要梳理笔者在学习和工作中实践爬虫技术的精华集合。

本文主要从以下几个方面来说明基于Python实践爬虫技术:

  • HTTP协议基础

  • Web页面结构

  • 爬虫基本原理

  • Session和Cookie基础

  • 代理基本原理

HTTP协议基础

你可以通过之前发布的《从零开始理解HTTP协议及报文分析》来深入学习HTTP协议,这篇文章有助于你从HTTP机制和报文结构方面深入理解什么是HTTP协议。

本节就HTTP2.0进行介绍,方便大家进一步了解HTTP的发展历史和特性。

HTTP2.0发布于2015年,相对HTTP1.1来说,HTTP2.0更快、更简单、更稳定。尤其是在传输层做了大量的优化,HTTP2.0的主要目标是:改进传输性能,实现低延迟和高吞吐量。

由于HTTP2.0内部实现了新的二进制分帧层,与之前的HTTP1.0/HTTP1.2不兼容了,这个是大家要重点注意的地方。

二进制分帧层

HTTP2.0的核心特性就在于这个新实现的二进制分帧层,在HTTP1.X中,不管是请求(request)还是响应(response),都是基于文本格式传输的,而且其头部(headers)和实体(body)之间是通过换行符进行分割的,而HTTP2.0则进行了优化改进,将文本传输模式改为了二进制格式,由于二进制格式利用率更高,组织方式更加灵活,使得在HTTP2.0中,解析起来更加高效,同时将请求(request)/响应(response)数据分割为更小的帧,并均采用二进制编码。

在这里需要大家了解几个概念:

  • 帧:只存在于HTTP2.0中,是数据传输的最小单位。

  • 数据流:虚拟通道,可以承载双向消息,每个数据流用一个唯一的整数ID来标识

  • 消息:与逻辑请求或响应消息对应的完整的系列帧

在HTTP2.0中,同域名下的所有通信都可以在单个连接上完成(注:在HTTP1.X中,有多个连接,这是二则的表现区别,大家注意一下),该连接可以承载任意任意的双向数据流。

数据流是用于承载双向消息的通道,每条消息都是一条逻辑HTTP消息,例如请求或响应,可以包含一个或多个帧。

简而言之,HTTP2.0将HTTP协议通信分解为二进制编码的交换,这些帧对应着特定的数据流中的消息,所有这些均在一个连接上复用。

大家可以通过下图看看HTTP1.X和HTTP2.0的区别:

本图来源于网络

Web页面结构

在我们用不同的浏览器访问不同的网站时,呈现出样式各样的页面,你有没有想过为什么会这样呢?在本节我们将介绍网页的组成、结构等内容。‍‍‍‍‍‍‍‍‍

一个网页的典型构成,一般分为三个部分:HTML、CSS和javascript。打个简单的比喻HTML相当于人体骨架、javascript相当于强健的肌肉、css相当于皮肤,这三种结合一起就构成了一个完美的网页。‍‍‍‍‍‍‍‍

下面我们看一个基本的网页构成源码。

看着有点小复杂,我们简化下,其结构源码如下

<html><head><!-- 我是网页注释 -->  <title>网页名称</title>  <link> <!-- 用于链jian链接引入静态资源 --> </link>  <script> <!-- 用于写js代码或链接引入js库 --> </script></head><body>  <!-- 页面主体布局设计/显示区 --></body><script>  <!-- 这里用于写js --></script></html>

上面这个结构,需要大家闭着眼也要能掌握。对于html更多的tag名称及作用需要大家进一步通过其他资料学习,推荐一部书

对于爬虫和自动化测试应用大家需要重点掌握以下几个方面的知识:‍‍‍‍‍‍‍‍‍

- 网页的结构

- 节点树及节点间的关系

- 选择器(xpath、css选择器)

这里推荐几篇过往的文章,如下:

使用Xpath获取页面元素

在Selenium Webdriver中使用XPath Contains、Sibling函数定位

selenium使用Xpath+CSS+JavaScript+jQuery的定位方法 - 专治各种定位不准并发症

爬虫基本原理

在应用爬虫进行实践前,需要掌握爬虫的基本原理和过程。简单讲,爬虫就是获取网页并提取和保存信息的自动化程序。‍‍‍‍‍‍‍‍‍‍‍‍‍

理解了上面这句简单的话,我们大概就知道了爬虫基本原理和过程如下:

1. 获取目标网页‍‍

2. 提取目标网页中的目标信息

3. 保存目标数据

4. 自动化完成上述步骤‍‍‍‍

Session和Cookie基础

在浏览网页时,我们经常碰到网页需要登录的情况,很多页面都需要登录获取权限后才能进行访问,这个时候就需要涉及Cookie、Session知识了。在本节我们简要的介绍下它们。

session,中文称之为会话,其本义指在贯穿浏览过程中的一系列动作、消息。例如打开浏览器、浏览网页、关闭浏览器。‍‍‍‍‍‍‍‍‍

而在web中,Session对象用例存储特定用户Session所需的属性、配置信息。这样当前用户才能在不同页面之间跳转时,存储在Session对象中的变量才不至于丢失。如果在过程中用户的session丢失或过期时,服务器就会中断该Session,让你无法继续浏览该服务。‍‍‍‍‍‍‍

而Cookie则是指望着为了鉴别用户身份,进行session跟踪而存储在用户本地的一些信息。‍‍

几个关键点:

1.  Session数据存储在服务端、Cookie数据存储在用户本地

2. Session不会因为本地终端关闭(例如浏览器关闭)而丢失

3. Sessio象都是有时效的,即超过预定的时间,会被服务器设置为超时而失效

代理基本原理

对于爬虫来讲,由于爬虫的速度较快,因此在爬取过程中可能会遇到同一个ip访问过于频繁的问题,到导致服务端禁止该ip进行爬取,这会导致极大的不便,这时就需要应用到代理。

代理,即中转站。设置代理,即在客户端与服务器端中间设置一座中转的桥,这样客户端发起的请求先发送至代理服务器,然后代理服务器再将信息转发给服务器,从而实现代理的作用。

代理有哪些基本的作用呢?

- 突破自身IP的限制,访问一些平时访问不了的信息

- 提高访问速度

- 隐藏真实IP

我们按不同的协议将代理分类如下:

- FTP代理

- HTTP代理

- SSL/TLS代理

- RTSP代理

- Telnet代理

- POP3/SMTP代理

- SOCKS代理

本章内容就介绍到此,后续进一步开展爬虫系列的写作。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python 笔记七:Requests爬虫技巧
小白学 Python 爬虫(10):Session 和 Cookies
[Python爬虫]使用requests和fiddler模拟登陆
python学习之python爬虫原理
什么是网络爬虫?python爬虫的工作原理是什么?
python爬虫知识点归纳(一)获取登录后页面的三种方式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服