zoukankan      html  css  js  c++  java
  • python访问web的利器:urllib2

    使用Python访问网页主要有三种方式: urllib, urllib2, httplib
    urllib比较简单,功能相对也比较弱,httplib简单强大,但好像不支持session
    1. 最简单的页面访问
    res=urllib2.urlopen(url)
    print res.read()
    2. 加上要get或post的数据
    data={"name":"hank", "passwd":"hjz"}
    urllib2.urlopen(url, urllib.urlencode(data))
    3. 加上http头
    header={"User-Agent": "Mozilla-Firefox5.0"}
    urllib2.urlopen(url, urllib.urlencode(data), header)

    使用opener和handler
    opener = urllib2.build_opener(handler)
    urllib2.install_opener(opener)
    4. 加上session
    cj = cookielib.CookieJar()
    cjhandler=urllib2.HTTPCookieProcessor(cj)
    opener = urllib2.build_opener(cjhandler)
    urllib2.install_opener(opener)
    5. 加上Basic认证
    password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
    top_level_url = "http://www.163.com/"
    password_mgr.add_password(None, top_level_url, username, password)
    handler = urllib2.HTTPBasicAuthHandler(password_mgr)
    opener = urllib2.build_opener(handler)
    urllib2.install_opener(opener)
    6. 使用代理
    proxy_support = urllib2.ProxyHandler({"http":"http://1.2.3.4:3128/"})
    opener = urllib2.build_opener(proxy_support)
    urllib2.install_opener(opener)
    7. 设置超时
    socket.setdefaulttimeout(5)

    参考:http://svn.python.org/projects/python/trunk/Doc/howto/urllib2.rst

  • 相关阅读:
    Android EditText 文本框实现搜索和清空效果
    Android学习笔记之打钩显示输入的密码
    Mysql limit offset
    Android SDK更新以及ADT更新出现问题的解决办法
    Android Broadcast Receiver 使用入门
    立即执行函数
    JS 原型 & 继承
    JS 对象
    chrome extension overview
    JS 修改元素
  • 原文地址:https://www.cnblogs.com/mmix2009/p/3226795.html
Copyright © 2011-2022 走看看