zoukankan      html  css  js  c++  java
  • Python urllib2 发送HTTP Request

    urllib2 是Python自带的标准模块, 用来发送HTTP Request的。  类似于 .NET中的,  HttpWebRequest类

    urllib2 的优点

    Python urllib2 发出的HTTP Request, 能自动被Fiddler截获, 方便了调试。

    Python 可以自动处理Cookie

    urllib2 的缺点

    Python urllib2 发出的http Request, 中的header 会被修改成“首字母大写”,

    比如你的代码里写的header 是: content-TYPE=application/x-www-form-urlencoded ,  会被修改为 Content-Type=application/x-www-form-urlencoded

    实例一,  Get方法, 并且自定义header

    复制代码
    复制代码
    # -* - coding: UTF-8 -* -  
    import urllib2
    
    request = urllib2.Request("http://www.baidu.com/")
    request.add_header('content-TYPE', 'application/x-www-form-urlencoded')
    response = urllib2.urlopen(request)
    print response.getcode()
    print response.geturl()
    print response.read()
    复制代码
    复制代码

    实例二, post方法

    复制代码
    复制代码
    # -* - coding: UTF-8 -* -  
    import urllib2
    import urllib
    
    request = urllib2.Request("http://passport.cnblogs.com/login.aspx")
    request.add_header('content-TYPE', 'application/x-www-form-urlencoded')
    data={"tbUserName":"test_username", "tbPassword":"test_password"}
    
    response = urllib2.urlopen(request, urllib.urlencode(data))
    print response.getcode()
    print response.geturl()
    print response.read()
    复制代码
    复制代码

    实例三: Cookie 的处理

    复制代码
    复制代码
    # -* - coding: UTF-8 -* -  
    import urllib2
    import urllib
    import cookielib
    
    cj = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    
    request = urllib2.Request("https://dynamic.12306.cn/otsweb/")
    request.add_header('content-TYPE', 'application/x-www-form-urlencoded')
    data={"tbUserName":"test_username", "tbPassword":"test_password"}
    
    response = opener.open(request, urllib.urlencode(data))
    
    # send again, you will see cookie sent to web server
    response = opener.open(request, urllib.urlencode(data))
    
    print response.getcode()
    print response.geturl()
    print response.read()
    复制代码
    复制代码

    实例四:如何处理跳转

    创建Opener时, ul2.HTTPRedirectHandler是默认被加上的handler之一 

    我们只需要努力,然后剩下的交给时间。
  • 相关阅读:
    Codeforces Round #277 (Div. 2)
    Topcoder SRM 637 (Div.2)
    【转】大素数判断和素因子分解【miller-rabin和Pollard_rho算法】
    【网络流#5】UVA 11082 最大流
    【网络流#4】UVA 753 最大流
    Codeforces Round #274 (Div. 2)
    【网络流#3】hdu 1532
    【网络流#2】hdu 1533
    【网络流#1】hdu 3549
    Codeforces Round #273 (Div. 2)
  • 原文地址:https://www.cnblogs.com/lgj8/p/13851576.html
Copyright © 2011-2022 走看看