【20天玩转Python爬虫】第3天:urllib基本使用

本文介绍了Python标准库urllib的使用,包括urllib.request请求模块、urllib.error异常处理、urllib.parse网址解析和urllib.robotparser文件解析。重点讲解了urllib.request.urlopen()和Request类,以及异常处理中的URLError和HTTPError。同时,提到了urllib.parse.urlparse()和urlencode()在URL处理中的作用,以及robots.txt文件对网络爬虫的限制。最后,介绍了urllib.urlretrieve()用于下载远程数据到本地的功能。
摘要由CSDN通过智能技术生成

上次文章中我们介绍了http协议,包含请求和响应部分。请求就是客户端向服务器端发送请求信息,服务器收到请求后,处理请求并返回响应。

通过上图和前一章爬虫我们了解到,平时我们使用浏览器访问一些网站就是使用了HTTP协议。那同理网络爬虫也是要使用HTTP协议才可以发出请求和获取响应。

电脑或者笔记本是使用了浏览器(比如IE、Chrom、Safari等),通过浏览器我们就可以看到丰富多彩、包罗万象的网络信息。那如果我们使用网络爬虫来去访问Web服务器,Python编程是用什么发出了请求,又获取的响应呢?

在Python中,我们可以使用urllib模块和requests模块。本篇我们主要围绕urllib模块来去介绍。

首先urllib是Python自带的标准库,无需安装,可以直接使用。如果想系统性的学习urllib库,可以直接看它的官方文档。官方文档:

https://docs.python.org/zh-cn/3.7/library/urllib.html

首先,我们看一下urllib库的官方文档:

大家可以发现文档是把urllib分成了4部分:

  1. urllib.request请求模块
  2. urllib.error 异常处理模块
  3. urllib.parse 解析模块
  4. urllib.robotparser 文件解析模块

我们本篇也是围绕这4部分展开讲解。

urllib.request请求模块

urllib.request 模块提供了最基本的构造 HTTP 请求的方法,利用它可以模拟浏览器的一个请求发起过程,同时它还带有处理 authenticaton (授权验证), redirections (重定向), cookies (浏览器Cookies)以及其它内容。

urllib.request.urlopen(url, data=None, [timeout, ]*, context=None)
打开统一资源定位地址 url,url可以是一个字符串或一个Request对象,返回一个HTTPResponse对象
参数说明:
url就是要访问的网页的地址
data (附加参数)可选的,如果要添加 data ,它要求是字节流编码格式的内容即 bytes 类型,通过 bytes() 函数可以进行转化,另外如果你传递了这个 data 参数,它的请求方式就不再是 GET 方式请求,而是 POST 。
timeout (超时时间) 设置网站访问超时时间
context,必须是 ssl.SSLContext 类型,用来指定 SSL 设置

我们来看一段通过urllib.request.urlopen访问百度首页的代码。

# 导包
import urllib.request
# 通过urllib.request.urlopen向百度发出请求,并获取响应
response = urllib.request.urlopen('http://www.baidu.com/')
# 查看返回的response的类型
print("查看 response 响应信息类型: ",type(response))
# 获取响应码
print(response.getcode())
# 读取响应内容
page = response.read()
# 打印响应内容
print(page)

通过运行结果我们发现返回的是H

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员日常

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值