urllib

简介: 【8月更文挑战第18天】

Python 的 urllib 库是一个用于处理 URL 的强大工具,它提供了许多用于网络访问的功能。以下是 urllib 的一些基本用法和推荐代码:

  1. 发送 GET 请求
    使用 urllib.request.urlopen() 可以发送一个 GET 请求到指定的 URL 并获取响应。例如:

    import urllib.request
    
    url = 'http://www.example.com'
    response = urllib.request.urlopen(url)
    html = response.read().decode('utf-8')
    print(html)
    
  2. 发送 POST 请求
    使用 urllib.request.Request() 来创建一个 POST 请求,并通过 urllib.request.urlopen() 发送。例如:

    import urllib.request
    import urllib.parse
    
    data = {
         'key': 'value'}  # POST请求的数据
    data = urllib.parse.urlencode(data).encode('utf-8')
    url = 'http://www.example.com'
    request = urllib.request.Request(url, data=data)
    response = urllib.request.urlopen(request)
    html = response.read().decode('utf-8')
    print(html)
    
  3. 设置请求头
    为了模拟浏览器行为,可以设置请求头(User-Agent),这有助于避免一些简单的反爬虫机制。例如:

    headers = {
         
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
    }
    request = urllib.request.Request(url, headers=headers)
    response = urllib.request.urlopen(request)
    html = response.read().decode('utf-8')
    
  4. 处理请求超时
    设置超时时间可以避免无限期地等待响应。例如:

    try:
        response = urllib.request.urlopen(url, timeout=10)  # 设置超时时间为10秒
    except urllib.error.URLError as e:
        print("请求超时或错误:", e)
    
  5. 保存网页内容到文件
    获取到网页内容后,可以将其保存到本地文件。例如:

    with open('example.html', 'w', encoding='utf-8') as f:
        f.write(html)
    
  6. 处理异常
    使用 try-except 结构来捕获并处理可能发生的异常,如超时或连接错误。例如:

    try:
        response = urllib.request.urlopen(url)
    except urllib.error.HTTPError as e:
        print("HTTP 错误:", e.code, e.reason)
    except urllib.error.URLError as e:
        print("请求失败:", e.reason)
    
目录
相关文章
|
1月前
|
数据采集 JSON 应用服务中间件
urllib与requests模块万字超详细!!
本文介绍了Python中用于发送网络请求的两个重要模块:`urllib` 和 `requests`。首先,文章详细讲解了 `urllib` 模块的基本使用方法,包括构造请求、发送请求、处理响应等。接着,文章重点介绍了 `requests` 模块,强调了其在企业中的广泛应用,以及如何发送GET和POST请求、处理响应、使用代理、处理Cookie等内容。最后,文章还探讨了 `requests` 模块的高级功能,如处理证书错误、设置超时、使用 `retrying` 模块等,帮助读者全面掌握网络请求的处理技巧。
59 4
|
3月前
|
安全 网络安全 Python
urllib3学习笔记(一)
urllib3学习笔记(一)
63 11
|
3月前
|
JSON 数据格式 Linux
urllib3学习笔记(二)
urllib3学习笔记(二)
60 9
|
7月前
|
数据采集 应用服务中间件 数据安全/隐私保护
Python爬虫urllib详解#3
摘要:urllib深度解析与高级用法、robots协议分析【2月更文挑战第9天】
106 1
Python爬虫urllib详解#3
|
7月前
|
安全 测试技术 API
urllib3库的介绍以及使用
`urllib3`是Python的HTTP库,支持HTTP/HTTPS,自动管理连接池,提供代理、证书配置,重定向处理等功能。其优势在于连接池管理和HTTPS支持。要安装,使用`pip install urllib3`。发起HTTP请求如`http.request('GET', 'http//example.com')`。处理响应包括状态码、头部和内容。高级功能包括连接池管理、超时和重试策略。注意线程安全、资源释放及错误处理。官方文档和相关文章可提供更多信息。
212 0
|
数据采集 存储
解决 urllib2 中 CookiesMiddleware 的 cookie 问题
解决 urllib2 中 CookiesMiddleware 的 cookie 问题
|
编解码 Python
urllib库(中)
urllib库(中)
56 0
|
Python
flask中遇到ImportError: cannot import name ‘url_encode‘ from ‘werkzeug‘
flask中遇到ImportError: cannot import name ‘url_encode‘ from ‘werkzeug‘
398 0
|
数据采集 XML 存储
urllib模块的使用
urllib模块的使用
62 0
|
应用服务中间件 nginx Python