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通过正则查找微博@(at)用户的方法
Mar 13 Python
Python通过poll实现异步IO的方法
Jun 04 Python
python自动zip压缩目录的方法
Jun 28 Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
Python 文件操作的详解及实例
Sep 18 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
【python】matplotlib动态显示详解
Apr 11 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
python异步Web框架sanic的实现
Apr 27 Python
python Scrapy爬虫框架的使用
Jan 21 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获取后台Job管理的实现代码
2011/06/10 PHP
Admin generator, filters and I18n
2011/10/06 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
javascript history对象详解
2017/02/09 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
Python FTP操作类代码分享
2014/05/13 Python
python实现连接mongodb的方法
2015/05/08 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
python操作excel的方法
2018/08/16 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
外包公司软件测试工程师
2014/11/01 面试题
电子商务专业实习生自我鉴定
2013/09/24 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android