python ---->>利用 urllib 库获取网络资源

这篇具有很好参考价值的文章主要介绍了python ---->>利用 urllib 库获取网络资源。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我的个人博客主页:如果’'真能转义1️⃣说1️⃣的博客主页
(1)关于Python基本语法学习---->可以参考我的这篇博客《我在VScode学Python》
(2)pip是必须的在我们学习python这门语言的过程中Python ---->> PiP 的重要性

Python urllib 库是用于操作网页 URL,并对网页的内容进行抓取处理。


urllib是Python的一个模块,提供了一系列用于处理URL的模块。它可以用于发送HTTP请求 1、处理cookie以及处理web sockets等任务。

url是什么

python ---->>利用 urllib 库获取网络资源
URL(外文名:Uniform Resource Locator,中文名:统一资源定位符),统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。它最初是由蒂姆·伯纳斯·李发明用来作为万维网的地址。

主要包含的模块:

python ---->>利用 urllib 库获取网络资源

  • urllib.request(请求模块):该模块定义了帮助在复杂世界中打开URL(主要是HTTP)的函数和类——基本和摘要身份验证、重定向、cookie等。

  • urllib.error(异常处理模块):该模块定义了由urllib.request引发的异常类。

  • urllib.parse(url解析模块):该模块定义了将URL解析为其组成部分的函数,以及将URL组件组合成完整URL的函数。

  • urllib.robotparser(robots.txt解析模块):该模块提供了一个单一的类RobotFileParser,用于回答特定用户代理是否被允许在发布robots.txt文件的网站上获取URL。

【1】urllib.request(请求模块) —> 用于打开 URL 的可扩展库

(1)urllib.request.urlopen

urllib.request.urlopen()函数的主要工作是打开指定的URL并检索响应。

函数原型

urlopen() 方法不仅支持 HTTP 协议,还支持其他常见的协议,

  • 如 FTP、SMTP 和 HTTPS。
  • Telnet
  • File / URL
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
- url:要打开的URL。
- data:这是一个可选参数,用于指定要发送到服务器的数据。
	如果不提供此参数,则请求将是GET请求。如果提供了它,则请求将是POST请求。
- timeout:这是一个可选参数,用于指定请求的超时时间(以秒为单位)。
	如果服务器在此时间内没有响应,则会引发timeout异常。
- cafile:这是一个可选参数,用于指定包含用于SSL验证的CA证书的文件的路径。
- capath:这是一个可选参数,用于指定包含用于SSL验证的CA证书的目录的路径。
- cadefault:这是一个可选参数,用于指定是否使用系统的默认CA证书进行SSL验证。
- context:这是一个可选参数,用于指定用于请求的SSL上下文。
例子:
import urllib.request

response = urllib.request.urlopen('**你的网站**')
html = response.read()
print(html)

urllib.request.urlopen 函数用于打开 URL 你需要了解的网站
然后,使用 read 方法将 URL 的内容读入变量 html 中。(方法获取的响应页面的返回值。打开的 URL 中读取内容并返回字节字符串(bytes)。)
最后,使用 print 函数将 html 的内容打印到控制台。

(2)urllib.request.urlretrieve —>该函数检索指定URL的内容并将其保存到本地文件中。

urllib.request.urlretrieve(url, [filename=None, ]reporthook=None, data=None)
  • url:要检索的URL。

  • filename:要将内容保存到的本地文件名。如果未指定,则该函数将尝试从URL中猜测文件名并将其保存到当前工作目录中。

  • reporthook:可选参数,用于指定一个回调函数,该函数将在检索过程中被调用以显示进度信息。

例子

如果传递了一个文件名参数,并且URL指向本地资源,则结果是从本地文件复制到新文件。

urllib.request.urlretrieve函数返回一个元组,其中包含新创建的数据文件的路径以及生成的HTTPMessage对象。
python ---->>利用 urllib 库获取网络资源
python ---->>利用 urllib 库获取网络资源

【2】- urllib.error(异常处理模块):该模块定义了由urllib.request引发的异常类。

urllib.error.URLError(reason, *args): 这是所有在URL处理期间发生的异常的基类。当无法打开或检索URL时,会引发此异常。reason参数是一个字符串,用于描述错误的原因。args参数是一个元组,包含其他与错误相关的信息。
urllib.error.HTTPError(url, code, msg, hdrs, fp):这是URLError的子类,当发生HTTP错误时引发。它包含有关HTTP错误代码和原因的信息。url参数是引发错误的URL,code参数是HTTP错误代码,msg参数是HTTP错误原因短语,hdrs参数是HTTP响应头,fp参数是一个文件对象,用于读取错误响应的主体。
urllib.error.ContentTooShortError(msg, content): 这是URLError的子类,当下载的内容比预期的短时引发。msg参数是一个字符串,用于描述错误的原因。content参数是一个字节串,包含下载的内容。

# 导入urllib.error模块:
import urllib.error

【3】urllib.parse(url解析模块):该模块定义了将URL解析为其组成部分的函数,以及将URL组件组合成完整URL的函数。

- urllib.parse.urlparse(urlstring, scheme='', allow_fragments=True) -> ParseResult: 将URL解析为其组件,并返回一个包含解析结果的ParseResult对象。
- urllib.parse.urlunparse(components)-> str: 接受URL组件的元组并返回完整的URL字符串。
- urllib.parse.urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus) -> str: 接受查询参数的字典并返回URL编码的字符串。
- urllib.parse.parse_qs(qs, keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None) -> Dict[str, Union[str, List[str]]]: 接受URL编码的查询字符串并返回查询参数的字典。

【4】 urllib.robotparser(robots.txt解析模块):该模块提供了一个单一的类RobotFileParser,用于回答特定用户代理是否被允许在发布robots.txt文件的网站上获取URL。

- urllib.robotparser.RobotFileParser(url=''): 创建一个新的RobotFileParser对象,该对象可以解析指定URL的robots.txt文件。
- urllib.robotparser.set_url(url):设置要解析的robots.txt文件的URL。
- urllib.robotparser.read(): 从指定的URL读取robots.txt文件并解析其内容。
- urllib.robotparser.can_fetch(useragent, url):检查指定的用户代理是否可以访问指定的URL。如果可以,返回True;否则返回False。
- urllib.robotparser.mtime():返回上次读取robots.txt文件的时间戳。
- urllib.robotparser.modified():返回robots.txt文件是否已被修改。

利用 urllib 库获取网络资源

当然获取想要的网络资源才是我们学习这篇文章的第一要义。
可以参考的的这篇博客:爬虫想要的HTML


  1. HTTP请求是指客户端向服务器发送请求并从服务器接收响应的过程。 ↩︎文章来源地址https://www.toymoban.com/news/detail-435022.html

到了这里,关于python ---->>利用 urllib 库获取网络资源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux网络名称空间之独立网络资源管理

    Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在Linux网络名称空间中可以拥有的独立网络资源,并指出应

    2024年04月11日
    浏览(43)
  • 网络安全红队资源合集

    红队的整个攻击流程 信息收集、攻击尝试获得权限、持久性控制、权限提升、网络信息收集、横向移动、数据分析(在这个基础上再做持久化控制)、在所有攻击结束之后清理并退出战场。 https://mitre-attack.github.io/ mitre 科技机构对攻击技术的总结 wiki https://huntingday.github.io 

    2024年02月09日
    浏览(44)
  • Docker网络与资源控制

    目录 一、Docker网络 1.Docker网络模式 2.Docker网络实现的原理 3.映射端口 4.none模式 5.bridge模式 二、资源控制 1.CPU 资源控制 2.cgroups有四大功能: ●Host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。 ●Container:创建的容器不会创建自己的网卡,

    2023年04月25日
    浏览(34)
  • Docker 网络、资源控制

    Docker使用Linux桥接 ,在宿主机虚拟一个 Docker容器网桥(docker0) ,Docker启动一个容器时会根据 Docker网桥的网段 分配给容器一个 IP地址 ,称为 Container-IP ,同时 Docker网桥是每个容器的默认网关 。因为在同一宿主机内的容器 都接入同一个网桥 ,这样容器之间就能够 通过容器的

    2024年02月15日
    浏览(43)
  • 网络安全--红队资源大合集

    红队攻击的生命周期,整个生命周期包括: 信息收集、攻击尝试获得权限、持久性控制、权限提升、网络信息收集、横向移动、数据分析(在这个基础上再做持久化控制)、在所有攻击结束之后清理并退出战场。 重点提醒:本项目工具来源于互联网,是否含带木马及后门请

    2024年02月06日
    浏览(33)
  • 【Linux】Docker 网络与资源控制

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机

    2024年02月15日
    浏览(34)
  • Android Studio 如何设置允许访问网络资源

    目录 前言 一、设置 二、更多资源         在 Android 应用中,有时需要访问网络资源,例如从服务器获取数据或者下载文件等。为了保证应用能够正常访问网络资源,需要在 AndroidManifest.xml 文件中添加网络权限。同时,在 Android 9.0 及以上版本中,还需要在代码中进行额外

    2024年02月03日
    浏览(37)
  • AWS SAP-C02教程3--网络资源

    架构设计中网络也是少不了的一个环节,而AWS有自身的网络结构和网络产品。本章中将带你看看AWS中不同网络产品,以及计算资源、存储资源等产品在网络架构中处于哪个位置,如何才能让它们与互联网互通、与其它产品互通。下图视图将SAP涉及到网络相关组件在一张图表示

    2024年02月07日
    浏览(44)
  • 11-k8s中网络资源service

            每当我们企业的业务pod迭代功能的时候,都会修改pod,修改后重新启动pod,ip就会变化,那么在生产环境当中,从用户到宿主机、从宿主机到pod,这一个访问流程,都是事先写好的,一旦pod修改后,ip产生变化,就需要重新配置,因此,k8s提供了service资源用于解决这

    2024年02月22日
    浏览(46)
  • web网络请求与远程资源-XmlHttpRequest

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 资源在:https://download.csdn.net/download/naozheyun2998/88916305 提示:以下是本篇文章正文内容,下面案例可供参考 ajax(Asynchronous JavaScript+XML),异步技术的统称; F

    2024年04月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包