•  官方文档地址:https://docs.python.org/3/library/urllib.html

    其主要包括一下模块:

    urllib.request 请求模块

    urllib.error 异常处理模块

    urllib.parse url解析模块

    urllib.robotparser robots.txt解析模块

  • urllib.request.urlopen

   urlopen参数如下:

  urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None

常用参数:

   url:访问的地址,一般不只是地址。

   data:此参数为可选字段,特别要注意的是,如果选择,请求变为post传递方式,其中传递的参数需要转为bytes,如果是我们只需要通过 urllib.parse.urlencode 转换即可:

import urllib.parse
import urllib.request
data = bytes(urllib.parse.urlencode({"word": "python"}), encoding=  'utf8')
response = urllib.request.urlopen("http://xxxxx", data=data)
print(response.read().decode('utf-8'))

  timeout:设置网站的访问超时时间

其他参数:

  context 参数:它必须是 ssl.SSLContext 类型,用来指定 SSL 设置。

  cafile 和 capath 两个参数:是指定CA证书和它的路径,这个在请求 HTTPS 链接时会有用。

  cadefault 参数:现在已经弃用了,默认为 False 

urlopen返回对象提供方法:

  read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作。

  info():返回HTTPMessage对象,表示远程服务器返回的头信息。

  getcode():返回Http状态码。

  geturl():返回请求的url。

 1 import urllib.request
 2 response = urllib.request.urlopen('http://python.org/')
 3 
 4 #查看 response 的返回类型
 5 print(type(response))
 6 
 7 #查看反应地址信息
 8 print(response)
 9 
10 #查看头部信息_1
11 print(response.info())
12 
13 #查看头部信息_2(http header)
14 print(response.getheaders())
15 
16 #输出头部属性信息
17 print(response.getheader("Server"))
18 
19 #查看响应状态信息_1
20 print(response.status)
21 
22 #查看响应状态信息_2
23 print(response.getcode())
24 
25 #查看响应url地址
26 print(response.geturl())
27 
28 #输出网页源码
29 page = response.read()
30 print(page.decode('utf-8'))  
View Code

相关文章: