zoukankan      html  css  js  c++  java
  • urllib 模块学习

    urllib.urlopen('网址'):这里传入urlopen()的参数有特别说要求,要遵循一些网络协议,比如http,ftp。

    也就是说,在网址的开头必须要有http://这样的说明,如:urllib.urlopen('http://www.baidu.com')。

    要么就是本地文件,本地文件需要使用file关键字,比如urllib.urlopen('file:hello.py')。

    注意,这里的hello.py是指的是当前的classpath所指定的内容,当然也可以直接写全部路径,urllib.urlopen('file:F:\pythontest\hello.py')。

    #-*- coding:utf-8 -*-
    import urllib
    
    f = urllib.urlopen('http://www.baidu.com')
    print f.read()
    print f.info()
    print f.getcode()
    

    如果传入的参数正确,比如该网站可以访问,没有特殊情况(比如需要代理等),那么将返回一个类似于文件对象的对象。即上面代码中的f,f对象有的方法一些操作方法,使用dir(f):

    >>> dir(f)
    ['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'code', 'fileno', 'fp', 'getcode', 'geturl', 'headers', 'info', 'next', 'read', 'readline', 'readlines', 'url']

    urlopen返回 一个类文件对象,他提供了如下方法:

    1. read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样;
    2. info():返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息;
    3. getcode():返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到;
    4. geturl():返回请求的url;

    使用read()方法会将所有内容读取出来,并且不能返回重读,在使用f.read()将得不到任何数据,也就是说,得到的数据在这个时候如果想在后面进行任何处理操作的话,需要另外定义一个对象来进行存储

     

  • 相关阅读:
    update jdk安装与配置
    Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
    ubuntu 修改开机分辨率
    win7下通过easyBCD引导安装Ubuntu14.04
    IOS swift2.0 Get HTTP 数据请求
    oracle数据库中文汉字排序
    ORACLE日期函数大全!
    Oralce常用命令
    在linux环境下安装redis
    PHP常用函数大全
  • 原文地址:https://www.cnblogs.com/Roger1227/p/3086329.html
Copyright © 2011-2022 走看看