网络请求——urllib 库

urllib 库python

urllib 库是 Python 中一个最基本的网络请求库。能够模拟浏览器的行为,向指定的服务器发送一个请求,并能够保存服务器返回的数据。浏览器

1、urlopen 函数:服务器

在 Python3 的 urllib 库中,全部和网络请求相关的方法,都被集到 urllib.request 模块下面了,如下先来看看 urlopen 函数基本的使用:网络

实际上,使用浏览器访问百度,右键查看源代码。你会发现,跟咱们打印出来的数据是如出一辙的。也就是说,上面三行代码就已经帮咱们把百度的首页所有代码爬下来了。一个基本的url 请求对应的 python 代码真的很是简单。函数

如下对 urlopen 函数进行详细讲解:post

  1. url :请求的 url 。
  2. data:请求的data ,若是设置了这个值,那么将变成 post 请求。
  3. 返回值:返回值是一个 http.client.HTTPResponse 对象,这个对象是一个类文件句柄对象。有read(size)、readline()、readlines()以及getcode()等方法。

2、urlretrieve 函数:编码

这个函数能够方便的将网页上的一个文件保存到本地。一下代码能够很是方便的将百度的首页下载到本地E盘的frame文件夹中:url

还能够下载网页上的图片到本地,只需复制网页上的图片地址:spa

3、urlencode 函数:3d

用浏览器发送请求的时候,若是url 中包含了中文或者其余特殊字符,那么浏览器会自动的给咱们进行编码。而若是使用代码发送请求,那么就必须手动的进行编码,这时候就应该使用 urlencode 函数来实现。 urlencode 能够把字典数据转换为 URL 编码的数据。

4、parse_qs 函数:

能够将通过编码后的 url 进行解码。

5、urllib 库之 urlparse 和 urlsplit 函数:

有时候拿到一个 url ,想要对这个url中的各个组成部分进行分割,那么这个时候就可使用 urlparse 或者是 urlsplit 来进行分割。

urlparse 和 urlsplit 的区别就在于 urlparse 多了一个 params 属性。还能够指定查看哪些属性:

6、request.Request 类:

若是想要在请求的时候增长一些请求头,那么就必须使用 request.Request 类来实现。好比要增长一个 User-Agent:

 

request.Request 类除了能够传递headers,还能够传递 Data 和 method。

相关文章
相关标签/搜索