Python笔记(十三):urllib模块

Posted 习惯形成性格,性格决定命运

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python笔记(十三):urllib模块相关的知识,希望对你有一定的参考价值。

(一)      URL地址

URL地址组件

URL组件

说明

scheme

网络协议或下载方案

net_loc

服务器所在地(也许含有用户信息)

path

使用(/)分割的文件或CGI应用的路径

params

可选参数

query

连接符(&)分割的一系列键值对

fragment

指定文档内特定锚的部分

net_loc组件

user:password@host:port

组件

说明

user

用户名或登录

password

用户密码

host

运行web服务器的计算机名称或地址(必需)

port

端口号(如果不是默认的80)

 

(二)      urllib

    这里主要说明urllib.request和urllib.parse.

(三)      urllib.request

urllib.request

组件

说明

urlopen(url,data=None)

打开URL链接,并返回一个文件类型对象,就像open用二进制只读方式在本地打开了一个文件一样。

url:可以是url字符串,也可以是请求对象

data:url是post请求时,可以指定要传的数据

urlretrieve(url,filename=None)

下载url中的文件

filename:文件名及路径(没有指定路径则存放到当前工作目录下)

urlopen对象方法

组件

说明

read()

读取所有数据

readline()

读取一行数据

readlines()

读取所有行,作为列表返回

fileno()

返回文件句柄

close()

关闭url连接(close及上面4个方法和open的同名方法是一样的)

info()

返回MIME(多目标因特网邮件扩展)头文件。这个头文件通知浏览器返回的文件类型、以及可用哪类应用程序打开。

geturl()

返回真正的url(例如如果出现重定向,就可以从最终打开的文件中获得真正的url)

getcode()

返回HTTP状态码


1
import urllib.request 2 url = \'https://tieba.baidu.com/p/5475267611\' 3 #打开url(就像用open二进制只读方式打开一个文件一样),使用read读取所有数据 4 html = urllib.request.urlopen(url).read() 5 print(type(html)) 6 7 url_file = \'https://imgsa.baidu.com/forum/w%3D580/sign=99114e38abec08fa260013af69ef3d4d/e549b13533fa828bc80c7764f61f4134960a5a85.jpg\' 8 #下载url中的文件并保存 9 urllib.request.urlretrieve(url_file,\'C:\\Temp\\\\1.jpg\') 10 11 #返回MIEM头文件 12 html_info = urllib.request.urlopen(url).info() 13 print(html_info)

(四)      urlib.parse

urlib.parse

函数

说明

urlparse(urlstr)

将url解析为一个元组(scheme=\'\', netloc=\'\', path=\'\', params=\'\', query=\'\', fragment=\'\')

urlunparse(urltup)

和urlparse相反,将url组件(一个元组)拼接为完整的url

urljoin(base,url)

将base的根域名和url拼接为一个完整的url

base:函数会自动截取net_loc及前面的所有内容


1
import urllib.parse 2 3 url = \'https://www.cnblogs.com/cate/python/\' 4 newurl = \'/cate/ruby/\' 5 #将url解析为一个元组(scheme=\'\', netloc=\'\', path=\'\', params=\'\', query=\'\', fragment=\'\') 6 urlpar = urllib.parse.urlparse(url) 7 print(\'urlparse示例:\',urlpar) 8 #和urlparse刚好相反,将元组(scheme=\'\', netloc=\'\', path=\'\', params=\'\', query=\'\', fragment=\'\')拼接为完整的url 9 urlunp = urllib.parse.urlunparse(urlpar) 10 print(\'urlunparse示例:\',urlunp) 11 #将url netloc及前面部分的内容与newurl连接起来 12 url_ruby = urllib.parse.urljoin(url,newurl) 13 print(\'urljoin示例:\',url_ruby)

以上是关于Python笔记(十三):urllib模块的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记22(urllib模块)

python自动化测试学习笔记-6urllib模块&request模块

Python3学习笔记(urllib模块的使用)

python学习笔记:网络编程

Python笔记8:网络编程

Python学习笔记(四十一)— 内置模块(10)urllib