python爬虫常用模块

发布时间:2017-11-27 23:47:41编辑:Run阅读(4492)

    python标准库之urllib模块

    涉及到网络这块,必不可少的模式就是urllib.request了,顾名思义这个模块主要负责打开URL和HTTP协议之类的

    urllib最简单的应用就是

    urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

    url  需要打开的网址

    data  Post提交的数据

    timeout  设置网站的访问超时时间

    urlopen返回对象提供方法

    read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作

    geturl()函数返回response的url信息,常用于url重定向的情况

    info()函数返回response的基本信息

    getcode()函数返回response的状态代码,最常见的代码是200服务器成功返回网页,404请求的网页不存在,503服务器暂时不可用


    编写一个testurllib.py来实验一下,代码如下

    #!/usr/bin/env python
    # coding: utf-8
    __author__ = 'www.py3study.com'
    import urllib.request
    import time
    import platform
    import os
    def clear():
        '''该函数用于清屏'''
        print(u'内容较多,显示3秒后翻页')
        time.sleep(3)
        OS = platform.system()
        if (OS == u'Windows'):
            os.system('cls')
        else:
            os.system('clear')
    
    def linkbaidu():
        url = 'https://www.baidu.com'
        try:
            response = urllib.request.urlopen(url, timeout=3)
        except urllib.request.URLError:
            print(u'网络地址错误')
            exit()
        with open('baidu.txt','w') as fp:
            fp.write(response.read().decode('utf-8'))
        print(u'获取url信息,response,geturl() \n: {}'.format(response.geturl()))
        print(u'获取返回代码,response.getcode() \n:{}'.format(response.getcode()))
        print(u'获取返回信息,response.info() \n:{}'.format(response.info()))
        print(u'获取的网页内容以存放当前目录baidu.txt中,请自行查看')
    
    if __name__ == '__main__':
        linkbaidu()

    应该看到的效果

    blob.png

    baidu.txt内容如下

    blob.png

关键字