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内置函数 next的具体使用方法
Nov 24 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
Nov 29 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
python实现数据分析与建模
Jul 11 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
pandas dataframe 中的explode函数用法详解
May 18 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
python 制作磁力搜索工具
Mar 04 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用GD库生成高质量的缩略图片
2011/03/09 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
sina的lightbox效果。
2007/01/09 Javascript
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
在Python 中实现图片加框和加字的方法
2019/01/26 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
实习心得体会
2014/01/02 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python