Loading... Python的 `urllib`库是一个用于处理URL的模块集合,它提供了一系列用于操作URL和执行网络请求的功能。`urllib`主要包括以下几个子模块:`urllib.request`、`urllib.error`、`urllib.parse`和 `urllib.robotparser`。 ### 1. urllib.request 这个模块用于打开和读取URL。它提供了从URL检索数据的接口。 #### 基本用法 - 打开和读取URL: ```python import urllib.request with urllib.request.urlopen('http://example.com/') as response: html = response.read() ``` #### 进阶用法 - 发送数据和设置请求头: ```python import urllib.parse import urllib.request data = bytes(urllib.parse.urlencode({'key1': 'value1', 'key2': 'value2'}), encoding='utf8') request = urllib.request.Request('http://example.com/', data=data) request.add_header('User-Agent', 'Mozilla/5.0') with urllib.request.urlopen(request) as response: response_text = response.read() ``` ### 2. urllib.error 这个模块包含 `urllib.request`抛出的异常。最常见的异常是 `URLError`和 `HTTPError`。 #### 例子 - 处理异常: ```python from urllib.request import urlopen from urllib.error import URLError, HTTPError try: response = urlopen('http://example.com/') except HTTPError as e: print('HTTPError:', e.code) except URLError as e: print('URLError:', e.reason) else: print('请求成功处理') ``` ### 3. urllib.parse 这个模块用于解析和构造URL。它提供了对URL的基本操作功能。 #### 例子 - 解析URL: ```python from urllib.parse import urlparse parsed_url = urlparse('http://example.com:80/foo/bar?baz=qux#quux') print(parsed_url) ``` - 构造URL查询字符串: ```python from urllib.parse import urlencode query_string = urlencode({'key1': 'value1', 'key2': 'value2'}) print(query_string) ``` ### 4. urllib.robotparser `urllib.robotparser`用于解析robots.txt文件。它可以确定哪些页面可以被抓取。 #### 例子 - 解析robots.txt: ```python from urllib.robotparser import RobotFileParser rp = RobotFileParser() rp.set_url('http://example.com/robots.txt') rp.read() can_fetch = rp.can_fetch('*', 'http://example.com/foo') print(can_fetch) ``` ### 小结 `urllib`是Python标准库的一部分,它为HTTP请求提供了简单的接口。尽管它不像一些外部库(如 `requests`)那样功能强大,但它是内置的、无需安装额外库,对于简单的任务来说是足够的。在使用 `urllib`时,需要注意异常处理和网络安全问题,如SSL证书验证、遵循robots.txt等。 #### [云服务器/高防CDN推荐](https://www.tsyvps.com/) #### [蓝易云](https://www.tsyvps.com/)国内/海外高防云服务器推荐 <div class="preview"> <div class="post-inser post box-shadow-wrap-normal"> <a href="https://www.tsyvps.com" target="_blank" class="post_inser_a no-external-link no-underline-link"> <div class="inner-image bg" style="background-image: url(https://www.8kiz.cn/img/6.png);background-size: cover;"></div> <div class="inner-content" > <p class="inser-title">蓝易云-五网CN2服务器【点我购买】</p> <div class="inster-summary text-muted"> <span style='color: red;'>蓝易云采用KVM高性能架构,稳定可靠,安全无忧!<br>蓝易云服务器真实CN2回国线路,不伪造,只做高质量海外服务器。</span> </div> </div> </a> <!-- .inner-content #####--> </div> <!-- .post-inser ####--> </div> --- **<span style='color:#000000'>海外免备案云服务器链接:[www.tsyvps.com](https://www.tsyvps.com)</span>** **<span style='color:#000000'>蓝易云安全企业级高防CDN:[www.tsycdn.com](https://www.tsycdn.com)</span>** **<span style='color:#DC143C'>持有增值电信营业许可证:B1-20222080【资质齐全】</span>** **<span style='color:#DC143C'>蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。</span>** 最后修改:2024 年 01 月 14 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏