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字符转换
Sep 06 Python
python获取局域网占带宽最大3个ip的方法
Jul 09 Python
python 不以科学计数法输出的方法
Jul 16 Python
mac安装pytorch及系统的numpy更新方法
Jul 26 Python
python3.5基于TCP实现文件传输
Mar 20 Python
python处理两种分隔符的数据集方法
Dec 12 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
用django设置session过期时间的方法解析
Aug 05 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
基于python检查矩阵计算结果
May 21 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
Python使用Web框架Flask开发项目
Jun 01 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
Yii核心验证器api详解
2016/11/23 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
Python3.2中的字符串函数学习总结
2015/04/23 Python
浅析Python多线程下的变量问题
2015/04/28 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
python字符串连接方法分析
2016/04/12 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
python 删除非空文件夹的实例
2018/04/26 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
python enumerate内置函数用法总结
2020/01/07 Python
Python列表操作方法详解
2020/02/09 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python如何操作docker redis过程解析
2020/08/10 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
Python绘制散乱的点构成的图的方法
2022/04/21 Python
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers