Python3自学 爬虫实战

爬虫基础

2019-08-14  本文已影响14人  Vector_Wan

所谓网络爬虫就是一个程序,通过模拟人类访问互联网的形式,不停地从网络上抓取我们需要的数据。听起来很神奇的样子,其实你只要了解了一些 Web 的基础知识,就会很容易理解它的工作方式。

人们正常访问互联网是通过浏览器,或者说是通过图形化界面,靠鼠标点点点。如果说把浏览器比做 windows 系统的话,爬虫更像是 Linux ,它更加注重终端的使用,我们的代码就像 shell 脚本一样。其实两种系统对于不同的场合各有优势,对于那种需要对大量相似对象进行同样操作的时候,使用代码似乎更容易一些。

1. 浏览器访问页面的方式

既然爬虫是模仿浏览器访问互联网的形式,那我们先来看看浏览器是如何访问互联网的。
首先我们需要了解一些基本的概念:

首先浏览器通过 DNS 服务器获取到 ip 地址,然后通过 ip 地址请求页面,服务器接收到请求,返回相应的页面,所谓页面就是Html js css jpj文件,这些文件详细的说明了网页到底应该长成什么样子,浏览器根据这些文件渲染出我们看到的网页。


2. 请求头

我们详细说一下刚刚提到的浏览器通过 ip 地址请求页面的过程。当web浏览器与web服务器建立连接之后(TCP连接)首先发送请求头,然后发送相关数据。其中请求头中包含一些浏览器的数据,常见的包括:

我们可以在浏览器上右键点击检查,然后点击下图的三个按钮,刷新页面查看某个请求的请求头。

3. 请求方法与状态码

在上面的图片中还有一个 Request Method 和 Status Code 它们就是请求方法和状态码。
请求方法有以下六种,我们主要使用 GET 和 POST 方法。


当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

下面是常见的HTTP状态码:

4. 字符与字符集

字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。(只有一个哦)

字符集是多个字符的集合。字符集包括 ASCII字符集、GB2312字符集、GB18030字符集、Unicode 字符集等。

ASCII 编码是一个字节,而 Unicode 编码是两个字节。

UTF-8 是 Unicode 的实现方式之一,UTF-8 是一种变长的编码方式,可以是1,2,3 个字节。

在网络传输的时候,互联网的数据都是以二进制的方式传输的,在 python 中对应的数据类型是 bytes。

而我们常见的字符串 str 是 Unicode的呈现形式。

上一篇下一篇

猜你喜欢

热点阅读