• python发送post请求


    urllib2.urlopen()

    urlib2是使用各种协议完成打开url的一个扩展包。最简单的使用方式是调用urlopen方法,比如
    def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
    和urllib中不同的是第三个参数为timeout了,所以代理只能在外面设置了。
    import urllib2
    content_stream = urllib2.urlopen('http://www.baidu.com/')
    content = content_stream.read()
    print content
    request = urllib2.Request( url = 'http://www.ideawu.net/?act=send', headers = {'Content-Type' : 'text/xml'}, data = data)
     
     
    #!/usr/bin/python
    #-*-coding:utf-8-*-
      
    import httplib,urllib;  #加载模块
     
    #定义需要进行发送的数据
    params = urllib.urlencode({'title':'标题','content':'文章'});
    #定义一些文件头
    headers = {"Content-Type":"application/x-www-form-urlencoded",
               "Connection":"Keep-Alive","Referer":"http://mod.qlj.sh.cn/sing/post.php"};
    #与网站构建一个连接
    conn = httplib.HTTPConnection("http://mod.qlj.sh.cn/sing/");
    #开始进行数据提交   同时也可以使用get进行
    conn.request(method="POST",url="post.php",body=params,headers=headers);
    #返回处理后的数据
    response = conn.getresponse();
    #判断是否提交成功
    if response.status == 302:
        print "发布成功!";
    else:
        print "发布失败";
    #关闭连接
    conn.close();<span id="more-998"></span>

    不使用COOKIES 简单提交

    import urllib2, urllib
    &nbsp;
    data = {'name' : 'www', 'password' : '123456'}
    f = urllib2.urlopen(
            url     = 'http://www.ideawu.net/',
            data    = urllib.urlencode(data)
            )
    print f.read()#读取全部返回内容
     
    print f.info() #取响应header头所有信息
    假设信息如下。
    Date: Wed, 26 Aug 2009 08:46:03 GMT
    Server: Apache/2.2.9 (Unix) PHP/5.2.6
    X-Powered-By: PHP/5.2.6
    X-Pingback: http://www.ideawu.net/index.php/XXXX
    Content-Type: text/html
    Connection: closeContent-Length: 31206
    那么,如果只取header某一部分信息,如'Content-Type'部分,用
    print f.info().getheader('Content-Type')
     

    使用COOKIES 复杂

    import urllib2&nbsp;
    cookies = urllib2.HTTPCookieProcessor()
    opener = urllib2.build_opener(cookies)
    &nbsp;
    f = opener.open('http://www.ideawu.net/?act=login&name=user01')
    &nbsp;
    data = '<root>Hello</root>'
    request = urllib2.Request(
            url     = 'http://www.ideawu.net/?act=send',
            headers = {'Content-Type' : 'text/xml'},
            data    = data)
    &nbsp;
    opener.open(request)
     
     
     
    一个小例子:

    一、打开一个网页获取所有的内容

    from urllib import urlopen doc = urlopen("http://www.baidu.com").read() print doc 二、获取Http头

    from urllib import urlopen doc = urlopen("http://www.baidu.com") print doc.info() print doc.info().getheader('Content-Type')  三、使用代理

        1. 查看环境变量

    print ""n".join(["%s=%s" % (k, v) for k, v in os.environ.items()]) print os.getenv("http_proxy")     2. 设置环境变量

    import   os os.putenv("http_proxy",   "http://proxyaddr:<port>")      3. 使用代理

    # Use http://www.someproxy.com:3128 for http proxying proxies = {'http': 'http://www.someproxy.com:3128'} filehandle = urllib.urlopen(some_url, proxies=proxies) # Don't use any proxies filehandle = urllib.urlopen(some_url, proxies={}) # Use proxies from environment - both versions are equivalent filehandle = urllib.urlopen(some_url, proxies=None) filehandle = urllib.urlopen(some_url)

    详细出处参考:http://www.jb51.net/article/15720.htm

     
     
  • 相关阅读:
    在wubantu时,用pychram创建django的App时,出现未找到命令
    Anaconda3 打开Navigator报错
    wubantu18.04版,pycharm2.18.3.2永久破解来了,借鉴个位大神的教程破掉的,感谢各位大佬
    找回感觉的练习
    第四次博客作业-结对项目
    第9次作业--接口及接口回调
    第8次作业--继承
    软件工程第三次作业——关于软件质量保障初探
    第7次作业--访问权限、对象使用
    第6次作业--static关键字、对象
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205614.html
Copyright © 2020-2023  润新知