python urllib.request.urljoin_Python urllib Request 用法

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值