在Python中,有几种方法可以用来请求URL而不遵循重定向。这里我将介绍两种常用的库:requests
和 urldecode
。它们可以方便地在Python中发送HTTP请求并处理重定向。
requests 是一个流行的库,用于与Web服务器通信和处理HTTP请求。它提供了一个 head
方法来获取HTTP头部,而不发送任何请求体。这将避免遵循重定向。
import requests
url = "https://www.example.com"
response = requests.head(url)
print(response.status_code)
print(response.headers)
urldecode 是一个专门用于处理URL编码的库。我们可以将URL解析为一个字符串,然后通过解编码将其转换为目标地址。这样,我们可以直接跳过重定向并获取原始页面内容。
from urllib.parse import unquote
import urlencode
def get_url_contents(url):
parsed_url = unquote(url)
params = urlencode({"url": parsed_url})
response = requests.get(params.get("url", url))
return response.text
def get_original_url(url):
parsed_url = unquote(url)
params = urlencode({"url": parsed_url})
url_contents = get_url_contents(params.get("url", url))
original_url = url + "?" + params.get("q", "")
return original_url
url = "https://www.example.com"
original_url = get_original_url(url)
print("原始URL:", original_url)
这两种方法都可以很方便地在Python中请求URL而不遵循重定向。不过需要注意的是,这两种方法都需要将URL解析后再请求,所以对于复杂的查询和重定向问题,可能不够灵活。实际场景中,可以根据需求选择合适的库来进行请求处理。
领取专属 10元无门槛券
手把手带您无忧上云