Python 的 urllib
库是一个用于处理 URL 的强大工具,它提供了许多用于网络访问的功能。以下是 urllib
的一些基本用法和推荐代码:
发送 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)
发送 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)
设置请求头:
为了模拟浏览器行为,可以设置请求头(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')
处理请求超时:
设置超时时间可以避免无限期地等待响应。例如:try: response = urllib.request.urlopen(url, timeout=10) # 设置超时时间为10秒 except urllib.error.URLError as e: print("请求超时或错误:", e)
保存网页内容到文件:
获取到网页内容后,可以将其保存到本地文件。例如:with open('example.html', 'w', encoding='utf-8') as f: f.write(html)
处理异常:
使用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)