python urllib 和 urllib2
2024-09-19 01:12:05
urllib 和 urllib2 都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下:
urllib 仅可以接受URL,不能创建 设置了headers 的Request 类实例;
但是 urllib 提供
urlencode
方法用来GET查询字符串的产生,而 urllib2 则没有。(这是 urllib 和 urllib2 经常一起使用的主要原因)编码工作使用urllib的
urlencode()
函数,帮我们将key:value
这样的键值对转换成"key=value"
这样的字符串,解码工作可以使用urllib的unquote()
函数。(注意,不是urllib2.urlencode() )
Get方式
# urllib2_get.py import urllib #负责url编码处理
import urllib2 url = "http://www.baidu.com/s"
word = {"wd":"传智播客"}
word = urllib.urlencode(word) #转换成url编码格式(字符串)
newurl = url + "?" + word # url首个分隔符就是 ? headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"} request = urllib2.Request(newurl, headers=headers) response = urllib2.urlopen(request) print response.read()
POST方式
import urllib
import urllib2 # POST请求的目标URL
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null" headers={"User-Agent": "Mozilla...."} formdata = {
"type":"AUTO",
"i":"i love python",
"doctype":"json",
"xmlVersion":"1.8",
"keyfrom":"fanyi.web",
"ue":"UTF-8",
"action":"FY_BY_ENTER",
"typoResult":"true"
} data = urllib.urlencode(formdata) request = urllib2.Request(url, data = data, headers = headers)
response = urllib2.urlopen(request)
print response.read()
最新文章
- vue2.0实战
- 【Java并发编程实战】-----“J.U.C”:ReentrantLock之二lock方法分析
- caffe 基本知识简介
- (01背包变形) Cow Exhibition (poj 2184)
- Java JDBC下执行SQL的不同方式、参数化预编译防御
- Android GestureDetector方法详解
- vim 学习日志(1):剪切,复制,粘贴,删除,撤销
- linux远程执行命令
- 基于cygwin构建u-boot(一)环境搭建
- MFC中MessageBeep与sndPlaySound播放声音函数使用
- 【转】jqGrid学习之参数
- JAVA_SE基础——44.抽象类的练习
- mysql ssh 跳板机(堡垒机???)连接服务器
- 区块链教程(二):比特币、区块链、以太坊、Hyperledger的关系
- Flutter Android 真机调试指南
- python基础一数据类型之集合
- luogu 1004 方格取数
- 发票查验---异步处理多条记录---demo代码
- struts2从浅至深(六)总结
- python装饰器(披着羊皮的狼)
热门文章
- Android API level 版本对应关系
- Android Http POST文件上传之-----RFC1867协议
- windows 手动安装 PostgreSQL 9.0 zip解压缩版
- gcc static静态编译选项提示错误:/usr/lib/ld:cannot find -lc
- 纯C实现面向对象之接口编程
- 多个客户端连接socket
- extjs4权限管理,actioncolumn列显示隐藏或禁用
- [加入用户]解决useradd 用户后没有加入用户Home文件夹的情况,Linux改变文件或文件夹的訪问权限命令,linux改动用户password,usermod的ysuum安装包。飞
- jQuery编程小结
- python exec和eval