zoukankan      html  css  js  c++  java
  • Python urllib Request 用法

    转载自:https://blog.csdn.net/ywy0ywy/article/details/52733839

    python2.7 httplib, urllib, urllib2, requests 库的简单使用

    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
  • 相关阅读:
    keras入门--Mnist手写体识别
    Python 实现简单的感知机算法
    使用Keras实现机器翻译(英语—>法语)
    keras实现mnist数据集手写数字识别
    将mnist数据集存储到本地文件
    测试神经网络
    使用Keras开发神经网络
    kali 执行apt-get upgrade后,终端无法打开的解决办法
    USACO 2020 January Contest, Platinum Problem 3. Falling Portals
    USACO 2020 January Contest, Platinum Problem 2. Non-Decreasing Subsequences
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9139063.html
Copyright © 2011-2022 走看看