您现在的位置是:群英 > 开发技术 > Python语言
python urllib库有何作用?一文了解urllib库的使用
Admin发表于 2021-12-02 17:45:041690 次浏览

    这篇文章给大家分享的是python urllib库的相关内容,下文介绍了urllib库的作用以及urllib库堵的基本用法,对大家学习和了解urllib库有一定的额帮助,那么接下来感兴趣的朋友一起跟随小编看看吧。

    urllib库作用

        urllib 库 是Python内置的 HTTP 请求库。urllib 模块提供的上层接口,使访问 www 和 ftp 上的数据就像访问本地文件一样。我们爬取网页的时候,经常需要用到这个库。

    Urllib 库下的几种模块的基本使用

        一、urllib.request模块

        1.功能

        urllib.request 模块提供了最基本的构造 HTTP (或其他协议如 FTP)请求的方法,利用它可以模拟浏览器的一个请求发起过程。利用不同的协议去获取 URL 信息。它的某些接口能够处理基础认证 ( Basic Authenticaton) 、redirections (HTTP 重定向)、 Cookies (浏览器 Cookies)等情况。而这些接口是由 handlers 和 openers 对象提供的。

        2.常用方法

        2.1 urlopen()方法

        语法格式:

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

        参数说明:url:需要打开的网址; data: Post 提交的数据, 默认为 None ,当 data 不为 None 时, urlopen() 提交方式为 Post; timeout:设置网站访问超时时间

        用例:

    import urllib.request# 等价于from urllib import request
    response = urllib.request.urlopen('https://www.baidu.com')
    print("查看 response 响应信息类型: ",type(response))
    page = response.read()
    print(page.decode('utf-8'))
    

        说明: 直接使用 urllib.request 模块中的 urlopen方法获取页面,其中 page 数据类型为 bytes 类型,经过 decode 解码 转换成 string 类型。通过输出结果可以 urlopen 返回对象是HTTPResposne 类型对象。

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

        read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样;

        info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息;可以通过Quick Reference to Http Headers查看 Http Header 列表。

        getcode():返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到;

        geturl():返回获取页面的真实 URL。在 urlopen(或 opener 对象)可能带一个重定向时,此方法很有帮助。获取的页面 URL 不一定跟真实请求的 URL 相同。

        示例:

    import urllib.request
    response = urllib.request.urlopen('https://python.org/')
    print("查看 response 的返回类型:",type(response))
    print("查看反应地址信息: ",response)
    print("查看头部信息1(http header):\n",response.info())
    print("查看头部信息2(http header):\n",response.getheaders())
    print("输出头部属性信息:",response.getheader("Server"))
    print("查看响应状态信息1(http status):\n",response.status)
    print("查看响应状态信息2(http status):\n",response.getcode())
    print("查看响应 url 地址:\n",response.geturl())
    page = response.read()
    print("输出网页源码:",page.decode('utf-8'))
    

        2.2 Request()方法

        使用request()来包装请求,再通过urlopen()获取页面。

        语法格式:

    urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
    

        示例:

    import urllib.request
    url = "https://www.lagou.com/zhaopin/Python/?labelWords=label"
    headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',
    'Referer': 'https://www.lagou.com/zhaopin/Python/?labelWords=label',
    'Connection': 'keep-alive'
    }
    req = request.Request(url, headers=headers)
    page = request.urlopen(req).read()
    page = page.decode('utf-8')
    print(page)
    

        参数说明:

        User-Agent :这个头部可以携带如下几条信息:浏览器名和版本号、操作系统名和版本号、默认语言。这个数据可以从 网页开发工具上的请求反应信息中获取(浏览器上一般按 F12 打开开发工具)。作用是用于伪装浏览器。

        Referer:可以用来防止盗链,有一些网站图片显示来源 https://***.com ,就是检查 Referer 来鉴定的。

        Connection:表示连接状态,记录 Session 的状态。

        origin_req_host:请求方的 host 名称或者 IP 地址。

        unverifiable:指请求无法验证,默认为 False。用户并没有足够的权限来选择接收这个请求结果,例如请求一个 HTML 文档中的图片,但没有自动抓取图像的权限,这时 unverifiable 为 True。

        method:指定请求使用的方法,例如 GET、POST、PUT 等。

    总结

        现在大家对于python urllib库的作用和使用这些应该都清楚了吧,上述示例有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习python urllib库有帮助,想要了解更多大家可以关注群英网络其它相关文章。

    文本转载自脚本之家

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    标签: python urllib库
    相关信息推荐
    2022-08-15 17:33:51 
    摘要:给大家带来一篇关于js实现登录注册界面的实例代码的相关教程文章,内容涉及到js、登录、注册、js实现登录与注册界面等相关内容,更多关于js实现登录与注册界面的内容希望能够帮助到大家。
    2022-07-30 17:36:42 
    摘要:php正则能匹配数组。在php中,可以利用preg_grep()函数来使用正则表达式匹配数组中的元素;该函数可以搜索数组中的每一个元素,并返回与正则表达式匹配的所有元素所组成的数组,语法“preg_grep(正则表达式,数组,$flags)”;参数“$flags”是可选的,当值设置为“PREG_GREP_INVERT”,则会返回数组中与与正则表达式不匹配的元素组成的数组。
    2022-09-17 16:36:32 
    摘要:这篇文章主要为大家详细介绍了PHP实现LRU算法的原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
    云活动
    推荐内容
    热门关键词
    热门信息
    群英网络助力开启安全的云计算之旅
    立即注册,领取新人大礼包
    • 联系我们
    • 24小时售后:4006784567
    • 24小时TEL :0668-2555666
    • 售前咨询TEL:400-678-4567

    • 官方微信

      官方微信
    Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
    增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    微信公众号
    返回顶部
    返回顶部 返回顶部