httpx
est un client Web complexe. Une fois installé, vous pouvez l'utiliser pour obtenir des données de sites Web. Comme d'habitude, le moyen le plus simple de l'installer est d'utiliser pip
Outils : httpx
包是一个复杂的 Web 客户端。当你安装它后,你就可以用它来从网站上获取数据。像往常一样,安装它的最简单方法是使用 pip
工具:
$ python -m pip install httpx --user
要使用它,把它导入到 Python 脚本中,然后使用 .get
函数从一个 web 地址获取数据:
import httpx result = httpx.get("https://httpbin.org/get?hello=world") result.json()["args"]
下面是这个简单脚本的输出:
{'hello': 'world'}
默认情况下,httpx
不会在非 200 状态下引发错误。
试试这个代码:
result = httpx.get("https://httpbin.org/status/404") result
结果是:
<Response [404 NOT FOUND]>
可以明确地返回一个响应。添加这个异常处理:
try: result.raise_for_status() except Exception as exc: print("woops", exc)
下面是结果:
woops Client error '404 NOT FOUND' for url 'https://httpbin.org/status/404' For more information check: https://httpstatuses.com/404
除了最简单的脚本之外,使用一个自定义的客户端是有意义的。除了不错的性能改进,比如连接池,这也是一个配置客户端的好地方。
例如, 你可以设置一个自定义的基本 URL:
client = httpx.Client(base_url="https://httpbin.org") result = client.get("/get?source=custom-client") result.json()["args"]
输出示例:
{'source': 'custom-client'}
这对用客户端与一个特定的服务器对话的典型场景很有用。例如,使用 base_url
和 auth
client = httpx.Client( base_url="https://httpbin.org", auth=("good_person", "secret_password"), ) result = client.get("/basic-auth/good_person/secret_password") result.json()
.get
fonction obtient les données d'une adresse Web : {'authenticated': True, 'user': 'good_person'}
def get_user_name(client): result = client.get("/basic-auth/good_person/secret_password") return result.json()["user"] get_user_name(client) 'good_person' def application(environ, start_response): start_response('200 OK', [('Content-Type', 'application/json')]) return [b'{"user": "pretty_good_person"}'] fake_client = httpx.Client(app=application, base_url="https://fake-server") get_user_name(fake_client)
httpx
ne générera pas d'erreur dans un statut non-200. Essayez ce code : 'pretty_good_person'
base_url
et
source:51cto.com