前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-数据挖掘-urllib库

Python-数据挖掘-urllib库

作者头像
小团子
发布2019-07-18 15:08:27
5930
发布2019-07-18 15:08:27
举报
文章被收录于专栏:数据云团数据云团

Python-数据挖掘-搜索引擎

urllib 库是 Python 内置的 HTTP 请求库,它可以看作处理 URL 的组件集合。

一、urllib 库包含四大模块:

① urllib.request:请求模块

② urllib.error:异常处理模块

③ urllib.parse:URL 解析模块

④ urllib.robotparser:robots.txt 解析模块

使用 urllib 快速爬取一个网页:

代码语言:javascript
复制
import urllib.request
# 调用 urllib.request 库的 urlopen() 方法,并传入一个 url
response = urllib.request.urlopen("http://www.baidu.com")
# 使用 read() 方法读取获取到的网页内容
html = response.read().decode("UTF-8")
# 打印网页内容
print(html)

二、分析 urlopen() 方法

上一个例子中的核心爬虫代码:

代码语言:javascript
复制
response = urllib.request.urlopen("http://www.baidu.com")

该代码调用的是 urllib.request 模块中的 urlopen() 方法,它传入了一个百度首页的 URL,使用的协议是 HTTP,,这是 urlopen() 方法最简单的用法。

其实,urlopen() 方法可以接受多个参数

代码语言:javascript
复制
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

① url:表示目标资源在网站中的位置,可以是一个表示 URL 地址的字符串,也可以是一个 urllib.request 对象。

② data:用来指明向服务器发送请求的额外信息。

③ timeout:可选参数,该参数用于设置超时时间,单位是秒。

④ cafile/capath/cadefault:用于实现可信任的 CA 证书的 HTTPS 请求。

⑤ context:实现 SSL 加密传输。

三、使用 HTTPResponse 对象

使用 urllib.request 模块中的 urlopen() 方法发送 HTTP 请求后,服务器返回的响应内容封装在一个 HTTPResponse 类型的对象中。

代码语言:javascript
复制
import urllib.request
# 调用 urllib.request 库的 urlopen() 方法,并传入一个 url
response = urllib.request.urlopen("http://www.baidu.com")
print(type(response))

HTTPResponse 类属于 http.client 模块,该类提供了获取 URL、状态码、响应内容等一系列方法。

① geturl():用于获取响应内容的 URL,该方法可以验证发送的 HTTP 请求是否被重新调配。

② info():返回页面的元信息。

③ getcode():返回 HTTP 请求的响应状态码。

代码语言:javascript
复制
import urllib.request
response = urllib.request.urlopen("http://www.baidu.com")
# 获取响应信息对应的 URL
print(response.geturl())
# 获取响应码
print(response.getcode())
# 获取页面的元信息
print(response.info())
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档