精华内容
下载资源
问答
  • 本文实例讲述了python中urllib模块用法。分享给大家供大家参考。具体分析如下: 一、问题: 近期公司项目的需求是根据客户提供的api,我们定时去获取数据, 之前的方案是用php收集任务存入到redis队列,然后在linux...
  • 本文实例讲述了python中urllib模块用法。分享给大家供大家参考。具体分析如下:一、问题:近期公司项目的需求是根据客户提供的api,我们定时去获取数据, 之前的方案是用php收集任务存入到redis队列,然后在linux下...

    本文实例讲述了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中urllib模块用法。分享给大家供大家参考。具体分析如下:一、问题:近期公司项目的需求是根据客户提供的api,我们定时去获取数据, 之前的方案是用php收集任务存入到redis队列,然后在linux下...

    本文实例讲述了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 urllib与urllib2模块用法urllib 和urllib2都是接受URL请求的相关模块,但是提供了不同的功能。urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。1、urllib模块 代码示例:import urllib#打开...

    python urllib与urllib2模块用法

    urllib 和urllib2都是接受URL请求的相关模块,但是提供了不同的功能。

    urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。

    1、urllib模块 代码示例:

    import urllib

    #打开ahlinux

    cto = urllib.urlopen('#')

    #打开本地文件:cto = urllib.urlopen(url='file:/root/python/ulib')

    #打开ftp:cto = = urllib.urlopen(url='ftp://用户名:密码@ftp地址/')

    #读取ahlinux首页的代码

    print cto.read()

    #获取远程服务器返回的头信息,跟curl -I www,#差不多

    print cto.info()

    #返回http状态码,200表示成功,404表示网址未找到

    print cto.getcode()

    #返回请求的URL

    print cto.geturl()

    #运行结果

    [root@localhost python]#python ctourl

    省略cto.read()函数,输出太多...

    Server: Tengine  #cto.info()返回信息

    Date: Wed, 27 Feb 2013 15:05:46 GMT

    Content-Type: text/html

    Connection: close

    Vary: Accept-Encoding

    Load-Balancing:

    web48

    200   #cto.getcode()返回信息

    #   #cto.geturl()返回信息

    #urlopen返回的是一个类文件对象,而这个对象的使用方法和文件对象的

    #使用方法完全一样。

    2、字符编码和解码: 代码示例:

    import urllib,os

    #对字符串进行编码

    stra = urllib.quote('this is python')

    print stra

    #对字符串进行解码

    print urllib.unquote(stra)

    #这个方法用‘+’代替了%20 和urllib.quote类似,

    strb = urllib.quote_plus('this is python')

    print strb

    #解码

    print urllib.unquote_plus(strb)

    dicta = {'name':'zeping','passwd':'123456'}

    #urlencode将字典转换成url参数

    print urllib.urlencode(dicta)

    #将本地路径转换成url路径

    filename = urllib.pathname2url('/python/test.py')

    print filename

    #将url路径转换成本地路径

    print urllib.url2pathname(filename)

    运行结果: [root@localhost python]# python quote

    this%20is%20python

    this is python

    this+is+python

    this is python

    passwd=123456&name=zeping

    /python/test.py

    /python/test.py

    urllib.urlretrieve():下载

    import urllib

    def Schedule(a,b,c):

    '''''

    a:已经下载的数据块

    b:数据块的大小

    c:远程文件的大小

    '''

    per = 100.0 * a * b / c

    if per > 100 :

    per = 100

    print '%.2f%%' % per

    #这里以下载

    缓存插件为例

    url = 'http://fastlnmp.googlecode.com/files/eaccelerator-0.9.6.tar.bz2'

    #获取文件名,下载到当前目录下,若果要下载到别的目录必

    #须输入绝对路径和文件名字:/root/too

    ls/eaccelerator-0.9.6.tar.bz2

    local = url.split('/')[-1]

    urllib.urlretrieve(url,local,Schedule)

    运行结果: [root@localhost urllib]# python down

    0.00%

    7.74%

    15.48%

    23.22%

    30.96%

    38.70%

    46.44%

    54.18%

    61.92%

    69.66%

    77.40%

    85.15%

    92.89%

    100.00%

    [root@localhost urllib]# ls

    down  eaccelerator-0.9.6.tar.bz2  ulib2

    urllib2:

    urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。

    有关python中urllib模块与urllib2模块的用法,请点这里查看更多内容。

    展开全文
  • Python的urllib模块提供了一个高级的Web通信库,支持基本的协议,如HTTP、FTP和Gopher,同时也支持对本地文件的访问。在Python3中,urllib、urlparse、urllib2等都整合进一个名为urllib的单一包中。urllib、urllib2...

    Python的urllib模块提供了一个高级的Web通信库,支持基本的协议,如HTTP、FTP和Gopher,同时也支持对本地文件的访问。在Python3中,urllib、urlparse、urllib2等都整合进一个名为urllib的单一包中。urllib、urllib2的内容整合进了urllib.request模块中,urlparse整合进了urllib.parse模块中。Python3中的urllib包还包括response、error、robotparse这些子模块。下面就来看看Python3中核心模块urllib的用法大全吧。

    urllib.parse

    一般来说,一个URL的地址是可以分为六部分的。urllib.parse模块就是对Web网址进行解析,分解或合并成URL。主要的方法有urlparse、urlunparse、urljoin。示例代码如下:#!/usr/local/env python

    # coding:utf-8

    import urllib.parse

    __author__ = "风轻清淡"

    url = "https://www.noniu.com/module;path?id=12#22"

    ret = urllib.parse.urlparse(url)

    # 结果为:ParseResult(scheme='http', netloc='www.noniu.com', path='/module', params='path', query='id=12', fragment='22')

    # 可以通过索引访问所有的结果,分别代表:网络协议、服务器地址、CGI应用路径、可选参数、查询的键值对、文档内定锚

    print(ret)

    url_str = ("http", "www.noniu.com", "/jiaocheng/228.html", "", "", "")

    url_ret = urllib.parse.urlunparse(url_str)

    # 结果为:https://www.noniu.com/jiaocheng/228.html

    # urlunpars与urlparse相当于相反的操作

    print(url_ret)

    url_join = urllib.parse.urljoin("https://www.noniu.com/about/", "/jiaocheng/228.html")

    # 结果为:https://www.noniu.com/jiaocheng/228.html

    # urljoin方法将URL的根域名与新的路径拼合为一个完整的URL

    print(url_join)

    urllib.request

    urllib.request模块中有urlopen、urlretrieve、quote等方法,具体的参数和功能见下表:urllib.request中的方法描述

    urlopen(urlstr, postQueryData=https://www.noniu.com/jiaocheng/None)打开URL urlstr,如果是POST请求,则通过postQueryData发送请求的数据

    urlretrieve(urlstr, localfile=None, downloadStatusHook=None)将URL urlstr中的文件下载到localfile或临时文件夹中(localfile没指定);如果函数正在执行,downloadStatusHook将获得下载的统计信息。

    quote(urldata, safe="/")对urldata在URL中无法使用的字符进行编码,safe中的字符不做处理。

    quote_plus(urldata, safe="/")除了将空格编码为+号(而非%20)之外,其他功能和quote没有区别

    unquote(urldata)将urldata中编码过的字符解码

    unquote_plus(urldata)除了将+号解码为空格之外,其他功能和unquote没有区别

    urlencode(dict)将dict的键值对通过quote_plus编码为有效的CGI查询字符串

    以下是urllib.request模块中具体方法的示例代码:#!/usr/local/env python

    # coding:utf-8

    import urllib.request

    __author__ = "风轻清淡"

    url = "https://www.noniu.com/index.php"

    ret = urllib.request.urlopen(url)

    # 结果为:b' '

    # 连接成功后,urlopen返回一个文件类型对象,可以使用read、readline等文件操作方法进行读取,数据为字节类型。

    print(ret.readline())

    # 结果为:https://www.noniu.com/index.php

    # geturl方法是考虑所有重定向后,获取真实的URL

    print(ret.geturl())

    展开全文
  • urllib 模块用法

    2018-05-13 13:39:00
    urllib用法 介绍 urllib 是 python3.X中提供的一系列操作URL的库,它可以轻松的模拟用户使用浏览器访问网页 使用步骤 导入 urllib 库的 request 模块 from urllib import request 请求 url res = request...
  • urllib模块基本用法

    2019-03-05 16:31:00
    urllib - python中自带的一个基于爬虫的模块。 - 作用:可以使用代码模拟浏览器发起请求。 (含2个子模块 request parse) - 使用流程: - 指定url - 发起请求 - 获取页面数据 - 持久化存储 # 需求:...
  • urllib模块基本用法 import urllib.request url = "http://www.baidu.com/" #发起请求并获取响应对象 response = urllib.request.urlopen(url) #响应对象的read()方法获取响应内容 # read()得到的...
  • 前言相信大家在做一个Python项目的时候,肯定会用到模块,就想JAVA会用到JAR包一样,这样会让我们的开发更高效和更简洁,本节为大家介绍一个URLlib模块在python中urllib模块提供上层接口,可以使用它下载读取数据,...
  • 一、最基础的应用import urllib2url = r'http://www.baidu.com'html = urllib2.urlopen(url).read()print html客户端与服务器端通过request与response来沟通,客户端先向服务端发送request,然后接收服务端返回的...
  • 今天学习了request模块和urllib模块,了解到这两个模块最大的区别就是在爬取数据的时候连接方式的不同。urllb爬取完数据是直接断开连接的,而requests爬取数据之后可以继续复用socket,并没有断开连接。两种用法的...
  • 今天学习了request模块和urllib模块,了解到这两个模块最大的区别就是在爬取数据的时候连接方式的不同。urllb爬取完数据是直接断开连接的,而requests爬取数据之后可以继续复用socket,并没有断开连接。两种用法的...
  • 1.基本方法urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)-url: 需要打开的网址-data:Post提交的数据-timeout:设置网站的访问超时时间直接用urllib...
  • urllib用法

    2019-05-16 16:41:06
    urllib.request模块用法 urlopen urllib.request.urlopen(url),括号内可传递的参数除了url,还有timeout, cafile,capath,context。 response = urllib.request.urlopen(url, data=data, timeout=100,capath=None,...
  • 1 添加头信息 1.1 User-Agent 有些网站,如果你按照urllib.request.urlopen('https://www.baidu.com') 这种方式打开,服务器有可能不会响应,所以...from urllib import request req = request.Request('https://ww...
  • urllib模块

    2020-03-15 22:15:48
    urllib.request.ProxyHandler网络代理的用法 设置代理地址 创建ProxyHandler代理对象 构建Opener 安装Opener # -*- coding:utf-8 -*- import requests import urllib url = "http://www.baidu.com/" # 代理...
  • urllib库parse模块用法总结

    千次阅读 2017-12-19 18:41:46
    urllib库parse模块用法总结如下: # !/usr/bin/env python # -*- coding:utf-8 -*- """ urllib.parse 处理URL的模块 """ import urllib.parse # 解析url,返回包含url信息的6元元组 res=urllib.parse.urlparse(...
  • 使用urllib2模块进行基于url的HTTP请求等操作大家也许都比较熟悉,这里我们再深入来了解一下urllib2针对HTTP的异常处理相关功能,一起来看一下Python网络编程中urllib2模块用法总结:
  • python中urllib模块

    2021-02-14 12:35:01
    只需要关注请求的链接,参数,提供... urllib.parse 解析模块 用法讲解 简单的一个get请求 import urllib.request reponse = urllib.request.urlopen('http://www.baidu.com') print(reponse.read().decode('utf-8'))
  • 在可供使用的网络库中,urlliburllib2可能是投入产出比最高的两个,是Python中操作url的官方标准库。它们让你能够通过网络访问文件,就像这些文件位于你的计算机中一样。只需一个简单的函数调用,就几乎可将统一...
  • python urllib模块

    2021-01-11 16:50:18
    https://www.jianshu.com/p/87d1e2f875b7 ... 目录urlparseurljoinurlopenurlretrieveurlencode用法响应Request代理Cookie异常处理提交json数据 在python3中,urlliburllib2进行了合并,现在只有.
  • urllib模块中常见的模块就是urllib.request模块,对于这个模块我会深入讲解一下,因为Python3.3.0之后,它的用法有了一个变化,在开发的过程中需要大家注意: The urllib.request module defines functions and ...
  • urllib库介绍 它是 Python 内置的HTTP请求库,也就是说我们不需要额外安装即可使用,它包含四个模块(主要对前三个模块进行学习): request : 它是最基本的 HTTP 请求模块,我们可以用它来模拟发送一请求,就像在...
  • error,parse,robotparserrequest用于发送request(请求)和取得response(回应)error包含request的异常,通常用于捕获异常parse用于解析和处理urlrobotparser用于robot.txt文件的处理urllib.request 模块import urllib....
  • 有以下4个模块urllib.request:用于打开和读取URLsurllib.error:处理urllib.request抛出的异常错误信息**urllib.parse: **解析URLsurllib.robotparser:解析robots.txt 文件,不常用urllib.request以下简单介绍常用...
  • 今天学习了request模块和urllib模块,了解到这两个模块最大的区别就是在爬取数据的时候连接方式的不同。urllb爬取完数据是直接断开连接的,而requests爬取数据之后可以继续复用socket,并没有断开连接。 两种用法的...
  • Python 版本是3.7.4urllib库介绍它是 Python 内置的HTTP请求库,也就是说我们不需要额外安装即可使用,它包含四个模块(主要对前三个模块进行学习):request : 它是最基本的 HTTP 请求模块,我们可以用它来模拟发送一...
  • Python 版本是3.7.4urllib库介绍它是 Python 内置的HTTP请求库,也就是说我们不需要额外安装即可使用,它包含四个模块(主要对前三个模块进行学习):request : 它是最基本的 HTTP 请求模块,我们可以用它来模拟发送一...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 339
精华内容 135
关键字:

urllib模块用法