python爬虫之urllib库常用方法用法总结大全

  • Post category:Python

Python爬虫之urllib库常用方法用法总结大全

什么是urllib库

urllib是Python中处理URL(即网址、链接)的标准库。它主要包含四个模块:

  1. urllib.request:提供了最基本的构造HTTP请求的方法,可以用来模拟浏览器的请求,发送GET、POST等请求方式;
  2. urllib.error:包含urlopen()可能引发的异常,可以利用它来进行异常处理;
  3. urllib.parse:用于URL处理,常用的就是将URL解析成各个组成部分;
  4. urllib.robotparser:用于识别网站的robots.txt文件,判断哪些页面可以爬取,哪些不可以。

urllib库常用方法

urllib.request.urlopen()方法

urllib.request.urlopen()方法用于打开一个URL地址,返回的是类文件对象,可以进行文件操作。

import urllib.request

response = urllib.request.urlopen('https://www.baidu.com')
print(response.status) # 打印状态码
print(response.read()) # 打印网页内容

urllib.request.Request()方法

urllib.request.Request()方法用于构造请求,可以设置请求的方法、请求头等信息。

import urllib.request

url = 'https://www.baidu.com'
headers = {'User-Agent': 'Mozilla/5.0'}
req = urllib.request.Request(url=url, headers=headers, method='GET')
response = urllib.request.urlopen(req)
print(response.status) # 打印状态码
print(response.read()) # 打印网页内容

urllib.error.HTTPError异常

urllib.error.HTTPError是urlopen()可能引发的异常,可以利用它来进行异常处理。

import urllib.request
import urllib.error

url = 'https://www.baidu.com/not_existing_page'
try:
    response = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
    print(e.code, e.reason) # 打印状态码和原因

urllib.parse.urlencode()方法

urllib.parse.urlencode()方法用于将字典类型的数据编码成url请求参数形式。

import urllib.parse

params = {'name': 'Python爬虫', 'num': 100}
query_string = urllib.parse.urlencode(params)
print(query_string) # 输出name=Python%E7%88%AC%E8%99%AB&num=100

urllib.request.urlretrieve()方法

urllib.request.urlretrieve()方法用于下载url地址的内容到本地文件。

import urllib.request

url = 'https://www.baidu.com'
filename = 'baidu.html'
urllib.request.urlretrieve(url, filename)

示例1

import urllib.request

response = urllib.request.urlopen('https://www.baidu.com')
print(response.status)
print(response.read())

示例2

import urllib.request
import urllib.error

url = 'https://www.baidu.com/not_existing_page'
try:
    response = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
    print(e.code, e.reason)

以上就是urllib库常用方法的使用详解。