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)
