Python学习urllib2模块使用

urllib包和urllib2包基于httplib包之上,提供高层次的抽象,用于处理url请求,urllib 和 urllib2 可以更方便地进行 HTTP GET 和 POST 等各种操作。
(1) urllib2.Request(url[, data[, headers]]) ,发送请求,创建request后,还可以进行其他添加
url: 请求的链接。如:'http://www.xiupin.com/index.html'
data: 请求数据
headers: 请求头信息
(2)urlopen(url) , 获取响应, 除了"http:",url同样可以使用"ftp:","file:"等来替代
(3)response.read(),获取响应内容
利用cookie登录XP,并获取用户信息:
import urllib2
import cookielib
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
def login(HOST, username, password):  
    #登录第一步:reg.163.com  
    URL_reg = "https://reg.163.com/logins.jsp?product=paopao&domains=163.com"
    DATA = "username=%s&password=%s&url=http://paopao.163.com/authAndRedirect?redirectURL=http://www.xiupin.com/" % (username, password) 
    request = urllib2.Request(URL_reg,DATA)
    #添加请求头信息
    request.add_header("Content-Type", "application/x-www-form-urlencoded")
    request.add_header("Accept", "text/html, application/xhtml+xml, */*")
    request.add_header("Referer", "http://www.xiupin.com")
    request.add_header("Accept-Language", "zh-CN")
    request.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)")
    request.add_header("Host", "reg.163.com")  
    request.add_header("DNT", "1")
    request.add_header("Connection", "Keep-Alive")
    response = opener.open(request)       #发送POST请求
    #response = urllib2.urlopen(request)    
    #print response.read()
    #登录第二步(跳转):paopao.163.com
    URL3 = "http://paopao.163.com/authAndRedirect?username=%s&redirectURL=http://www.xiupin.com/" % username
    request3 = urllib2.Request(URL3)
    response3 = opener.open(request3)  #发送GET请求
    #print response3.read()
    #for index in cookie:
        #print index.name,index.value
def getUserInfo(URL2):
    #URL2 = "http://www.xiupin.com/profile/getUserInfo"
    DATA2 = ""
    request2 = urllib2.Request(URL2,DATA2)
    response2 = opener.open(request2)       #发送POST请求
    print response2.read()
urllib包和urllib2包基于httplib包之上,提供高层次的抽象,用于处理url请求,urllib 和 urllib2 可以更方便地进行 HTTP GET 和 POST 等各种操作。
(1) urllib2.Request(url[, data[, headers]]) ,发送请求,创建request后,还可以进行其他添加
url: 请求的链接。如:'http://www.xiupin.com/index.html'
data: 请求数据
headers: 请求头信息
(2)urlopen(url) , 获取响应, 除了"http:",url同样可以使用"ftp:","file:"等来替代
(3)response.read(),获取响应内容
利用cookie登录XP,并获取用户信息:
import urllib2
import cookielib

cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

def login(HOST, username, password):  
    #登录第一步:reg.163.com  
    URL_reg = "https://reg.163.com/logins.jsp?product=paopao&domains=163.com"
    DATA = "username=%s&password=%s&url=http://paopao.163.com/authAndRedirect?redirectURL=http://www.xiupin.com/" % (username, password) 
    
    request = urllib2.Request(URL_reg,DATA)
    #添加请求头信息
    request.add_header("Content-Type", "application/x-www-form-urlencoded")
    request.add_header("Accept", "text/html, application/xhtml+xml, */*")
    request.add_header("Referer", "http://www.xiupin.com")
    request.add_header("Accept-Language", "zh-CN")
    request.add_header("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)")
    request.add_header("Host", "reg.163.com")  
    request.add_header("DNT", "1")
    request.add_header("Connection", "Keep-Alive")
    
    response = opener.open(request)       #发送POST请求
    #response = urllib2.urlopen(request)    
    #print response.read()
    
    #登录第二步(跳转):paopao.163.com
    URL3 = "http://paopao.163.com/authAndRedirect?username=%s&redirectURL=http://www.xiupin.com/" % username
    request3 = urllib2.Request(URL3)
    response3 = opener.open(request3)  #发送GET请求
    #print response3.read()
    
    #for index in cookie:
        #print index.name,index.value
    
def getUserInfo(URL2):
    #URL2 = "http://www.xiupin.com/profile/getUserInfo"
    DATA2 = ""
    request2 = urllib2.Request(URL2,DATA2)
    response2 = opener.open(request2)       #发送POST请求
    print response2.read()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值