转载自: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. 由-webkit-transform-style:preserve-3d;所想

    看一个用css3写幻灯片的demo用到了这么几个属性 .demo{ -webkit-transform-style:preserve-3d; -webkit-perspective:800px; -w ...

  2. Idea下安装Lombok插件

    参照:http://www.cnblogs.com/holten/p/5729226.html https://yq.aliyun.com/articles/59972 lombok是一个可以通过简单 ...

  3. position属性absolute与relative 的区别

    连接:https://www.cnblogs.com/duyanli/p/3534005.html 每次要用到Position属性时,总要去搜索下,这两个属性值的区别:今天就直接复制网上的结果,以便以 ...

  4. 下拉框combobox用法&级联餐单

    如果下来内容不用后台取数据,直接写死的话不用url属性,直接用data即可: <input id="orderstate" name="orderstate&quo ...

  5. 通过Application传递数据

    1:通过Application传递数据 假如有一个Activity A, 跳转到 Activity B ,并需要推荐一些数据,通常的作法是Intent.putExtra() 让Intent携带,或者有 ...

  6. pl/sql Devloper 快捷键__新建sql窗口

    首先,打开PLSQL,菜单栏--->首选项----->键配置 其次,点击你要增加快捷键的选项,直接键盘上输入快捷键: 比如你要修改为CTRL+N,直接在键盘上按出CTRL+N即可. ESC ...

  7. 【Python】JBOSS-JMX-EJB-InvokerServlet批量检测工具

    一.说明 在JBoss服务器上部署web应用程序,有很多不同的方式,诸如:JMX Console.Remote Method Invocation(RMI).JMXInvokerServlet.Htt ...

  8. 【转】Python流程控制语句

    [转]Python流程控制语句 人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走:有的人好一点,可以二选一:有些能力好或者家境好的人,可以有更多的选择:还有一些人在人生的迷茫期会在 ...

  9. SSD win7优化步骤

    随着固态硬盘价格不断下降,目前固态硬盘也得到了广泛了应用,一些新笔记本以及组装电脑也开始普遍采用固态硬盘平台,超级本就更不用说了,采用固态硬盘已经成标配化,虽然固态硬盘速度很快,但不懂的优化,依然无法 ...

  10. 蓝牙HID协议笔记【转】

    蓝牙HID协议笔记 转自:http://blog.sina.com.cn/s/blog_69b5d2a50101emll.html 1.概述     The Human Interface Devic ...