python爬虫学习第五天

时间:2023-01-13 20:43:06

今天学习了urllib.parse这个模块定义了许多处理URL的标准接口,主要是对网页的URL进行拆分、合并

这部分的功能本身用起来比较简单,但需要对URL的结构有一定的理解才能很好的看懂和使用。

书上介绍的函数有:
urllib.parse.urlparse()//分析一个URL的成分,可以把一个URL拆分成最多六个部分
urllib.parse.urlunparse()//输入参数必须是六个,可以把这六个参数合并成一个完整的URL
urllib.parse.urlsplit()//原文介绍:

这个和urlparse()方法非常相似,只不过它不会单独解析parameters这一部分,只返回五个结果。上面例子中的parameters会合并到path中。

urllib.parse.urlunsplit()//原文介绍:

与urlunparse()类似,也是将链接的各个部分组合成完整链接的方法,传入的也是一个可迭代对象。 例如list、tuple等等,唯一的区别是,长度必须为5。
此外还有另外两个方法urllib.parse.urljoin()与urllib.parse.urlencode()//书中介绍的不是很多

练习1 urlparse

# from urllib.parse import urlparse

# result = urlparse('http://www.baidu.com/index.html;user?id=5#comment')
# print(type(result))
# print(result)

练习2 urlparse scheme参数

# from urllib.parse import urlparse

# result = urlparse('www.baidu.com/index.html;user?id=5#comment',scheme='https')
# print(result)
# result1 = urlparse('http://www.baidu.com/index.html;user?id=5#comment',scheme='https')
# print(result1)

练习3 urlparse的返回值是元组,可用数组式操作也可用类属性式的操作

# from urllib.parse import urlparse

# result = urlparse('http://www.baidu.com/index.html#comment',allow_fragments=False)
# print(result.scheme)
# print(result[0])
# print(result[1])
# print(result.netloc)

练习4 urlunparse

# from urllib.parse import urlunparse

# data = ['https','www.baidu.com','index.html','user', 'a=6', 'comment']
# print(urlunparse(data))

练习5 urlsplit 切分url

# from urllib.parse import urlsplit

# result = urlsplit('http://www.baidu.com/index.html;user?id=5#comment')
# print(result)
# print(result[0])
# print(result[1])
# print(result[2])
# print(result[3])
# print(result[4])

练习6 urlunsplit

# from urllib.parse import urlunsplit

# data = ['http', 'www.baidu.com', 'index.html', 'a=6', 'comment']
# print(urlunsplit(data))