学习爬虫,最基础的便是模拟浏览器向服务器发出请求,那么我们需要从什么地方做起呢?请求需要我们自己来构造吗?需要关心请求这个数据结构的实现吗?需要了解 HTTP、TCP、IP 层的网络传输通信吗?需要知道服务器的响应和应答原理吗?
可能你无从下手,不过不用担心,Python 的强大之处就是提供了功能齐全的类库来帮助我们完成这些请求。利用 Python 现有的库我们可以非常方便地实现网络请求的模拟,常见的库有 urllib、requests 等。
拿 requests 这个库来说,有了它,我们只需要关心请求的链接是什么,需要传的参数是什么,以及如何设置可选的参数就好了,不用深入到底层去了解它到底是怎样传输和通信的。有了它,两行代码就可以完成一个请求和响应的处理过程,非常方便地得到网页内容。
接下来,就让我们用 Python 的 requests 库开始我们的爬虫之旅吧。
首先,requests 库是 Python 的一个第三方库,不是自带的。所以我们需要额外安装。
在这之前需要你先安装好 Python3 环境,如 Python 3.6 版本,如若没有安装可以参考:https://cuiqingcai.com/5059.html。
安装好 Python3 之后,我们使用 pip3 即可轻松地安装好 requests 库:
pip3 install requests
更详细的安装方式可以参考:https://cuiqingcai.com/5132.html。
安装完成之后,我们就可以开始我们的网络爬虫之旅了。
用 Python 写爬虫的第一步就是模拟发起一个请求,把网页的源代码获取下来。
当我们在浏览器中输入一个 URL 并回车,实际上就是让浏览器帮我们发起一个 GET 类型的 HTTP 请求,浏览器得到源代码后,把它渲染出来就可以看到网页内容了。
那如果我们想用 requests 来获取源代码,应该怎么办呢?很简单,requests 这个库提供了一个 get 方法,我们调用这个方法,并传入对应的 URL 就能得到网页的源代码。
我们可以用 requests 这个库轻松地完成这个过程,代码的写法是这样的:
import requests
r = requests.get('https://static1.scrape.cuiqingcai.com/')
print(r.text)
请求
HTTP 中最常见的请求之一就是 GET 请求,下面我们来详细了解利用 requests 库构建 GET 请求的方法。
GET 请求
我们换一个示例网站,其 URL 为 http://httpbin.org/get,如果客户端发起的是 GET 请求的话,该网站会判断并返回相应的请求信息,包括 Headers、IP 等。
我们还是用相同的方法来发起一个 GET 请求,代码如下:
import requests
r = requests.get('http://httpbin.org/get')
print(r.text)
后面的下次再码,嘿嘿嘿,睡觉去了~~~~~~~~~~~