python的rllib库你了解吗

作者:不怕晚 时间:2022-03-16 02:18:15 

目录
  • urllib库作用

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

    • 一、urllib.request模块

      • 1.功能

      • 2.常用方法

    • 参数说明:

    • 总结

      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 等。

      参考:https://www.jb51.net/article/209542.htm

      来源:https://blog.csdn.net/weixin_44762483/article/details/121031739

      标签:python,rllib,库
      0
      投稿

      猜你喜欢

    • python属于跨平台语言码

      2023-12-23 02:10:32
    • pandas删除部分数据后重新生成索引的实现

      2023-11-18 04:44:13
    • pip如何用pipdeptree查看包依赖

      2022-07-28 01:56:26
    • W3C网页内容无障碍指南2.0(WCAG)

      2008-11-20 13:40:00
    • 中英文双语导航菜单

      2007-05-11 17:04:00
    • Python中装饰器兼容加括号和不加括号的写法详解

      2022-08-09 10:46:25
    • 用python实现超强的加密软件

      2022-12-06 11:42:50
    • 符合网站标准的图片切换代码(天极软件)

      2008-02-20 08:23:00
    • Python使用poplib模块和smtplib模块收发电子邮件的教程

      2023-11-02 14:58:34
    • 浅谈python 导入模块和解决文件句柄找不到问题

      2023-12-07 03:40:07
    • 如何用python多次调用exe文件运行不同的结果

      2023-07-08 03:01:24
    • 浅谈如何使用Python控制手机(二)

      2022-05-01 20:16:28
    • OpenCV-Python模板匹配人眼的实例

      2022-10-22 06:09:23
    • 浅谈Python从全局与局部变量到装饰器的相关知识

      2022-06-02 12:23:26
    • 显示某日期所在星期的所有日期asp代码

      2008-06-01 16:05:00
    • PyQt5 界面显示无响应的实现

      2021-09-05 08:59:11
    • tkinter使用js的canvas实现渐变色

      2024-02-24 20:46:47
    • SQL语句练习实例之二——找出销售冠军

      2011-10-24 19:52:45
    • 利用Matplotlib实现单画布绘制多个子图

      2021-10-30 19:33:58
    • VMware workstation16 中Centos7下MySQL8.0安装过程及Navicat远程连接

      2024-01-21 12:08:47
    • asp之家 网络编程 m.aspxhome.com