1. urllib库概述
urllib是Python中一个用于处理URL的标准库,它提供了一系列的方法,可以用于发送HTTP请求、处理URL编码等操作。在Python爬虫中,urllib库是最常用的库之一,可以用于获取网页内容、下载文件、处理表单提交等。本文将介绍urllib库中最常用的方法。
2. urllib常用方法
2.1 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
该方法用于打开一个URL地址,并返回一个类似文件的对象,可以使用read()
方法获取网页内容。
import urllib.request
url = "http://www.example.com"
response = urllib.request.urlopen(url)
html = response.read()
print(html)
重要部分:
response = urllib.request.urlopen(url)
html = response.read()
在上述代码中,使用urlopen()
方法打开URL地址,并将返回的对象赋值给response
。然后使用read()
方法将网页内容读取出来,并赋值给html
变量。
2.2 urllib.parse.urlencode(query, doseq=False, [safe, encoding, errors])
该方法用于将一个字典或者元组列表形式的查询参数,转换成URL编码的字符串。尤其适用于表单提交时需要将参数转换成URL编码的情况。
import urllib.parse
data = {"username": "admin", "password": "123456"}
encoded_data = urllib.parse.urlencode(data)
print(encoded_data)
重要部分:
encoded_data = urllib.parse.urlencode(data)
print(encoded_data)
在上述代码中,使用urlencode()
方法将data
字典中的键值对转换成URL编码的字符串,并将结果赋值给encoded_data
变量。
2.3 urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None)
该方法用于下载文件,将指定的URL地址的文件保存到本地。可以指定保存的文件名、下载进度回调函数等。
import urllib.request
url = "http://www.example.com/sample.jpg"
filename = "sample.jpg"
urllib.request.urlretrieve(url, filename)
print("下载完成")
重要部分:
urllib.request.urlretrieve(url, filename)
在上述代码中,使用urlretrieve()
方法将指定的URL地址的文件保存到本地,并指定保存的文件名为sample.jpg
。
2.4 urllib.parse.urljoin(base, url, [allow_fragments])
该方法用于拼接URL地址,将相对路径和基地址拼接成一个完整的URL地址。
import urllib.parse
base = "http://www.example.com"
url = "/page.html"
full_url = urllib.parse.urljoin(base, url)
print(full_url)
重要部分:
full_url = urllib.parse.urljoin(base, url)
print(full_url)
在上述代码中,使用urljoin()
方法将相对路径/page.html
和基地址http://www.example.com
拼接成一个完整的URL地址,并将结果赋值给full_url
变量。