Python爬虫 urllib学习之基本使用

1.Urllib简介

Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。

本文主要介绍 Python3 的 urllib。

urllib 包 包含以下几个模块:

urllib.request - 打开和读取 URL。 urllib.error - 包含 urllib.request 抛出的异常。 urllib.parse - 解析 URL。

2.urllib简单使用

使用urllib进行爬取首先需要导入urllib

import urllib.request

接着需要一个真实存在的URL,以百度网址为例,使用的是http协议

url = http://www.baidu.com

模拟浏览器向服务器发送请求,并接受服务器的响应

response = urllib.request.urlopen(url)

接着获取响应中的页面源码

# read  返回字节形式的二进制数据
# 将二进制的数据转变为字符串 解码 decode(编码格式)
content = response.read().decode(utf-8)

打印源码

# 4. 打印源码
print(content)

源码

import urllib.request

# 1. 定义一个url
url = http://www.baidu.com

# 2. 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 3. 获取响应中的页面源码
# read  返回字节形式的二进制数据
# 将二进制的数据转变为字符串 解码 decode(编码格式)
content = response.read().decode(utf-8)

# 4. 打印源码
print(content)

3.urllib的几个方法

首先向服务器发送请求,并接收响应

import urllib.request

url = http://www.baidu.com

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)
类型 HTTPResponse

可以使用type获取response类型

print(type(response))
# <class http.client.HTTPResponse>
方法一: read()

使用 read()可以按照字节读取响应的数据

print(response.read())

返回的是字节类型的 可以进行编码response.read().decode(utf-8)

方法二:readlines()

使用readlines()可以实现按行读取,但是不可以使用decode()

content = response.readlines()
print(content)
方法三:getcode()

使用getcode()获取响应的状态码

print(response.getcode())
方法四:geturl()
print(response.geturl())
方法五:getheaders()

使用getheaders()可以获取响应头信息。

print(response.getheaders())

4. 下载

调用urlretrieve(url, filename)可以下载资源

import urllib.request

url = http://www.baidu.com

# url下载路径 filename文件名
urllib.request.urlretrieve(url, baidu.html)
经验分享 程序员 微信小程序 职场和发展