博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
阅读量:4145 次
发布时间:2019-05-25

本文共 1866 字,大约阅读时间需要 6 分钟。

python2中,urlliburllib2

都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下:

(urllib2.urlopen accepts an instance of the Requestclass or a url, whereas urllib.urlopen only accepts a url

1、urllib2可以接受一个Request的实例来设置URL请求的headers

2、urllib仅可以接受URL。这意味着,你不可以伪装你的User Agent字符串等。

    urllib 有urlencode,urllib2没有,这也是为什么总是urllib,urllib2常会一起使用的原因

req = urllib2.Request(         url=url,          data=postdata,          headers=headers  )  result = urllib2.urlopen(req)

Python3x中的urllib包、http包以及第三方包requests

Python3中把包成为了2个包,就是http与urllib,详解如下:
http会处理所有客户端--服务器http请求的具体细节,其中:
(1)client会处理客户端的部分
(2)server会协助你编写Python web服务器程序
(3)cookies和cookiejar会处理cookie,cookie可以在请求中存储数据

urllib是基于http的高层库,它有以下三个主要功能:

(1)request处理客户端的请求
(2)response处理服务端的响应
(3)parse会解析url

#发送数据和header  import urllib.parse  import urllib.request  url = ''  user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  values = {  'act' : 'login',  'login[email]' : '',  'login[password]' : ''  }  headers = { 'User-Agent' : user_agent }  data = urllib.parse.urlencode(values)  req = urllib.request.Request(url, data, headers)  response = urllib.request.urlopen(req)  the_page = response.read()  print(the_page.decode("utf8"))

Python第三方库requests

requests 使用的是 urllib3,继承了urllib2的所有特性。requests有很大功能特性:

支持HTTP连接保持和连接池;支持使用cookie保持会话;支持文件上传;支持自动确定响应内容的编码;支持国际化的 URL 和 POST 数据自动编码。requests不是python自带的库,需要另外安装 

pip install requests
先来一个简单的例子吧

import requestsr = requests.get(url='http://www.baidu.com')    # 最基本的GET请求print(r.status_code)    # 获取返回状态#带参数的GET请求,http://dict.baidu.com/s?wd=pythonr = requests.get(url='http://dict.baidu.com/s', params={'wd':'python'})   print(r.url)print(r.text)   #打印解码后的返回数据
除了get
请求外,还可以POST请求,PUT请求,DELETE请求,HEAD请求,OPTIONS请求

对于WEB系统除了get请求外,还可以POST请求,PUT请求,DELETE请求,HEAD请求,OPTIONS请求一般只支持 GET 和 POST,有一些还支持 HEAD 方法

requests的官方指南文档:http://docs.python-requests.org/en/latest/user/quickstart.html

转载地址:http://vqbti.baihongyu.com/

你可能感兴趣的文章
使用bash解析xml
查看>>
android系统提供的常用命令行工具
查看>>
Python基础-操作文件和目录
查看>>
Python基础-序列化
查看>>
SP91 GMS唤醒优化
查看>>
ERROR 1044 (42000)Access denied for user @localhost to database
查看>>
Eclipse安装Pydev后Window-Preferences没有显示PyDev的解决办法
查看>>
MySql找不到指定文件,安装的目录
查看>>
Utterance-level Aggregation For Speaker Recognition In The Wild笔记
查看>>
隐马尔可夫(HMM)、前/后向算法、Viterbi算法
查看>>
通俗易懂维特比算法
查看>>
BiLSTM-CRF中CRF层解析-1
查看>>
BiLSTM-CRF中CRF层解析-2
查看>>
BiLSTM-CRF中CRF层解析-3
查看>>
BiLSTM-CRF中CRF层解析-4
查看>>
BiLSTM-CRF中CRF层解析-5
查看>>
Learning to Compare: Relation Network for Few-Shot Learning论文笔记
查看>>
few-shot learning几篇论文
查看>>
问答系统论文小记
查看>>
c++使用torch的问题
查看>>