转载自:https://blog.csdn.net/ywy0ywy/article/details/52733839

python2.7 httplib, urllib, urllib2, requests 库的简单使用

2016年10月04日 14:33:45

阅读数:16825

httplib实现了HTTP协议,是比较底层的实现,一般不直接使用。 
urllib, urllib2是对httplib的高层封装,urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。所以urllib常和urllib2一起使用。 
requests是python第三方库,基于urllib,使用起来比urllib简便。


urllib

以打开百度的首页为例

import urllib

res = urllib.urlopen('http://www.baidu.com')
print res.getcode()
for line in res:
print line
res.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

urllib2

urllib2与urllib的使用类似,但urlopen时接收了一个Request实例,并且对response的读取要方便一些。

import urllib2

req = urllib2.Request('http://www.baidu.com')
res = urllib2.urlopen(req)
print res.code
print res.read()
res.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

urllib + urllib2

以百度的搜索为例,请求格式为 https://www.baidu.com/s?wd=xxx,用urllib的urlencode方法格式化参数wd=xxx

import urllib2
import urllib url = 'http://www.baidu.com/s'
values = {'wd': 'word'}
data = urllib.urlencode(values) req = urllib2.Request(url + '?' + data)
response = urllib2.urlopen(req)
print response.code
print response.read()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

httplib

import httplib
import urllib values = {'wd': 'word'}
data = urllib.urlencode(values)
conn = httplib.HTTPConnection('www.baidu.com')
conn.request('GET', '/s?'+data)
response = conn.getresponse()
print response.status
print response.read()
conn.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

requests

在使用requests之前要确保你已经安装了requests模块,并且是最新的。如果没有,使用pip install requests安装。

import requests
url = 'http://www.baidu.com/s'
values = {'wd': 'word'}
res = requests.get(url, values)
print res.status_code
print res.content

Python urllib Request 用法的更多相关文章

  1. 第14.6节 使用Python urllib.request模拟浏览器访问网页的实现代码

    Python要访问一个网页并读取网页内容非常简单,在利用<第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头>的方法构建了请求http报文的请求头情况下,使 ...

  2. python urllib.request

    一.简介 urllib.request 模块提供了访问 URL 的相关功能 二.常用函数 urllib.request.urlopen("http://httpbin.org", ...

  3. 第14.9节 Python中使用urllib.request+BeautifulSoup获取url访问的基本信息

    利用urllib.request读取url文档的内容并使用BeautifulSoup解析后,可以通过一些基本的BeautifulSoup对象输出html文档的基本信息.以博文<第14.6节 使用 ...

  4. Python Spider - urllib.request

    import urllib.request import urllib.parse import json proxy_support = urllib.request.ProxyHandler({' ...

  5. Python 基于urllib.request封装http协议类

    基于urllib.request封装http协议类 by:授客QQ:1033553122 测试环境: Python版本:Python 3.3   代码实践 #!/usr/bin/env python ...

  6. Python 3.X 要使用urllib.request 来抓取网络资源。转

    Python 3.X 要使用urllib.request 来抓取网络资源. 最简单的方式: #coding=utf-8 import urllib.request response = urllib. ...

  7. Python做简单爬虫(urllib.request怎么抓取https以及伪装浏览器访问的方法)

    一:抓取简单的页面: 用Python来做爬虫抓取网站这个功能很强大,今天试着抓取了一下百度的首页,很成功,来看一下步骤吧 首先需要准备工具: 1.python:自己比较喜欢用新的东西,所以用的是Pyt ...

  8. python之urllib.request.urlopen(url)报错urllib.error.HTTPError: HTTP Error 403: Forbidden处理及引申浏览器User Agent处理

    最近在跟着院内大神学习python的过程中,发现使用urllib.request.urlopen(url)请求服务器是报错: 在园子里找原因,发现原因为: 只会收到一个单纯的对于该页面访问的请求,但是 ...

  9. 爬虫入门【1】urllib.request库用法简介

    urlopen方法 打开指定的URL urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, ca ...

随机推荐

  1. PyCharm的调试

    1.设置断点 2.debug模式运行    F8      下一行代码 查看当前位置所有局部变量:print(locals()) 查看全局变量:                      print( ...

  2. HDU 1569 - 方格取数(2) - [最大点权独立集与最小点权覆盖集]

    嗯,这是关于最大点权独立集与最小点权覆盖集的姿势,很简单对吧,然后开始看题. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1569 Time Limi ...

  3. 第16月第17天 contentMode

    1. self.contentMode = UIViewContentModeScaleAspectFill; self.clipsToBounds = YES; http://blog.csdn.n ...

  4. SpringMVC的JSON数据交互(七)-@Response,@RestController,@RequestBody用法

    1.@RequestBody   (自动将请求的数据封装为对象) 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConve ...

  5. java中的基本数据类型一定存储在栈中吗?

    首先说明,"java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的. 下面让我们一起来分析一下原因: 基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型 ...

  6. 【转载】apache log配置 按日期写日志

    指定apache日志每天生成一个文件 Linux系统配置方法 在apache的配置文件httpd.conf中找到 代码如下1 ErrorLog logs/error_log CustomLog log ...

  7. 梯度优化算法总结以及solver及train.prototxt中相关参数解释

    参考链接:http://sebastianruder.com/optimizing-gradient-descent/ 如果熟悉英文的话,强烈推荐阅读原文,毕竟翻译过程中因为个人理解有限,可能会有谬误 ...

  8. Windows10 中在指定目录下启动Powershell

    (1)首先进入该目录: (2)按住shift键,且同时在该目录空白处鼠标右击,打开右键菜单: (3)此时可以发现,在右键菜单中,多了一项,叫做[在此处打开Powershell窗口(s)],点击该项: ...

  9. redis安全 (error) NOAUTH Authentication required

    Redis 安全 我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全. 实例 我们可以通过以下命令查看是否设置了 ...

  10. Slick.js+Animate.css 结合让网页炫动起来

    一个代码示例: html部分 <link rel='stylesheet prefetch' href='//cdnjs.cloudflare.com/ajax/libs/animate.css ...