python中urllib模块用法实例详解


Posted in Python onNovember 19, 2014

本文实例讲述了python中urllib模块用法。分享给大家供大家参考。具体分析如下:

一、问题:

近期公司项目的需求是根据客户提供的api,我们定时去获取数据, 之前的方案是用php收集任务存入到redis队列,然后在linux下做一个常驻进程跑某一个php文件, 该php文件就一个无限循环,判断redis队列,有就执行,没有就break.

二、解决方法:

最近刚好学了一下python, python的urllib模块或许比php的curl更快,而且简单. 贴一下代码

#_*_ coding:utf-8 _*_

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

import os

import json

from urllib import urlopen

doc = urlopen("http://xxxx?webid=1&tid=901&cateid=101").read()

doc = json.loads(doc)

print doc

print doc.keys()

print doc["msg"]

print doc['data']

print doc['ret']

发现第一次访问所需要的时间为[Finished in 3.0s]
而第二次访问的时间为[Finished in 0.2s]
可见python的urllib模块是加有缓存的
urllib/2用法典型的例子
    import urllib2

    import cookielib

    import urllib
    class Hi_login:

        def __init__(self):

            cookie = cookielib.CookieJar()

            self.cookie = urllib2.HTTPCookieProcessor(cookie) ##### 生成cookie ###
        def login(self,user,pwd):

            url='http://passport.baidu.com/?login'

            postdata=urllib.urlencode({

          'mem_pass':'on',

        

          'password':pwd

           'Submit':'',

          'tpl':'sp',

          'tp_reg':'sp',

          'u' :'http://hi.baidu.com',

          'username':user})

            ### proxy_support = urllib2.ProxyHandler({"http":"http://ahad-haam:3128"}) 然后加入opener方法里####

            opener = urllib2.build_opener(self.cookie) ### 使用cookie ###

            headers = { ####### dict结构,可以加入x-forward-for甚至refer等 #######

           'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}

            urllib2.install_opener(opener)

            request = urllib2.Request(url,urllib.urlencode(postdata),headers = headers)

            urllib2.urlopen(request)

    if __name__=='__main__':

       pwd='123456'

       user='xiaofu'

       test=Hi_login()

       test.login(user,pwd)

假如访问需要认证的页面比如nagios监控页面等,
    import urllib2

    password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

    url = "http://202.1.x.y/nagios"

    password_mgr.add_password(None, url, user='abc',passwd='xxxxxx')

    handler = urllib2.HTTPBasicAuthHandler(password_mgr)

    opener = urllib2.build_opener(handler)

    urllib2.install_opener(opener)

    f=urllib2.urlopen(url)

    print f.code

返回结果200,否则就是401认证错误

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 Python
python使用range函数计算一组数和的方法
May 07 Python
Python中Django框架利用url来控制登录的方法
Jul 25 Python
基于python socketserver框架全面解析
Sep 21 Python
pandas中的DataFrame按指定顺序输出所有列的方法
Apr 10 Python
Python 将pdf转成图片的方法
Apr 23 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
django数据模型中null和blank的区别说明
Sep 02 Python
Python远程linux执行命令实现
Nov 11 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
python统计一个文本中重复行数的方法
Nov 19 #Python
python通过zlib实现压缩与解压字符串的方法
Nov 19 #Python
python判断字符串是否纯数字的方法
Nov 19 #Python
python使用any判断一个对象是否为空的方法
Nov 19 #Python
python编写暴力破解FTP密码小工具
Nov 19 #Python
用python读写excel的方法
Nov 18 #Python
kNN算法python实现和简单数字识别的方法
Nov 18 #Python
You might like
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
javascript天然的迭代器
2010/10/29 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Django中几种重定向方法
2015/04/28 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
详解python单元测试框架unittest
2018/07/02 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
应届毕业生应聘自荐信
2013/12/07 职场文书
村居抓节水倡议书
2014/05/19 职场文书
学习党章的体会
2014/11/07 职场文书
篮球赛新闻稿
2015/07/17 职场文书
公司员工管理制度
2015/08/04 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
Python实现简繁体转换
2021/06/07 Python