Urllib库

Posted cangshuchirou

tags:

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

urllib是一个包,这个包收集了几个用于处理URLs的模块

urllib.request      用于打开和读取URLs
urllib.error        用于触发请求的异常
urllib.parse        用于分析URLs
urllib.robotparser  用于分析robots.txt格式的文件

 

 

 

 

 

 URLOPEN练习

技术分享图片
import urllib.request

response = urllib.request.urlopen("http://www.baidu.com")
print(response.read().decode("utf-8"))
第一个爬虫
技术分享图片
import urllib.request
import urllib.parse

data = bytes(urllib.parse.urlencode({"word":"hello"}),encoding="utf8")
response = urllib.request.urlopen("http://httpbin.org/post",data=data)
print(response.read())
POST请求
技术分享图片
import urllib.request

response = urllib.request.urlopen("http://httpbin.org/get",timeout=1)
print(response.read())
简单超时
技术分享图片
import socket
import urllib.request
import urllib.error

try:
    response = urllib.request.urlopen("http://httpbin.org/get",timeout=0.1)
except urllib.error.URLError as e:
    if isinstance(e.reason,socket.timeout):
        print("TIME OUT")
简单的异常

 

 响应练习

 

技术分享图片
import urllib.request

response = urllib.request.urlopen("https://www.python.org")
print(type(response))
响应类型
技术分享图片
import urllib.request

response = urllib.request.urlopen("https://www.python.org")
print(response.status)
print(response.getheaders())
print(response.getheader("Server"))
获取状态码响应头
技术分享图片
import urllib.request

request = urllib.request.Request("https://www.python.org")
response = urllib.request.urlopen(request)
print(response.read().decode("utf-8"))
得到响应内容

 

 

以上是关于Urllib库的主要内容,如果未能解决你的问题,请参考以下文章

Python3中urllib使用与源代码

python爬虫 urllib库基本使用

使用 urllib2 或任何其他 http 库读取超时

urllib库利用cookie实现模拟登录慕课网

urllib库详解

urllib库发送get和post请求