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中的一些类型转换函数小结
Feb 10 Python
python根据路径导入模块的方法
Sep 30 Python
Python中Continue语句的用法的举例详解
May 14 Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
代码讲解Python对Windows服务进行监控
Feb 11 Python
Python实现的求解最小公倍数算法示例
May 03 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
python实现坦克大战游戏 附详细注释
Mar 27 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
Python字典实现伪切片功能
Oct 28 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
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
Python中用于计算对数的log()方法
2015/05/15 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
函授本科个人自我鉴定
2014/03/25 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
社会工作专业求职信
2014/07/15 职场文书
大学生毕业个人总结
2015/02/15 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书