当前位置: 首页 > wzjs >正文

杭州pc手机网站建设中国培训网官网

杭州pc手机网站建设,中国培训网官网,做网站 什么主题较好,垂直网站怎么做文章目录 1. 安装 httpx2. 同步请求3. 异步请求4. 高级功能5. 错误处理6. 配置客户端7. 结合 Beautiful Soup 使用8. 示例:抓取并解析网页9. 注意事项 httpx 是一个现代化的 Python HTTP 客户端库,支持同步和异步请求,功能强大且易于使用。它…

文章目录

    • 1. 安装 httpx
    • 2. 同步请求
    • 3. 异步请求
    • 4. 高级功能
    • 5. 错误处理
    • 6. 配置客户端
    • 7. 结合 Beautiful Soup 使用
    • 8. 示例:抓取并解析网页
    • 9. 注意事项

httpx 是一个现代化的 Python HTTP 客户端库,支持同步和异步请求,功能强大且易于使用。它比 requests 更高效,支持 HTTP/2 和异步操作。以下是 httpx 的详细使用方法:

1. 安装 httpx

首先,确保已经安装了 httpx。可以通过以下命令安装:pip install httpx

如果需要支持 HTTP/2,可以安装额外依赖:pip install httpx[http2]

2. 同步请求

发送 GET 请求

import httpx# 发送 GET 请求
response = httpx.get('https://httpbin.org/get')
print(response.status_code)  # 状态码
print(response.text)         # 响应内容

发送 POST 请求

# 发送 POST 请求
data = {'key': 'value'}
response = httpx.post('https://httpbin.org/post', json=data)
print(response.json())  # 解析 JSON 响应

设置请求头

headers = {'User-Agent': 'my-app/1.0.0'}
response = httpx.get('https://httpbin.org/headers', headers=headers)
print(response.json())

设置查询参数

params = {'key1': 'value1', 'key2': 'value2'}
response = httpx.get('https://httpbin.org/get', params=params)
print(response.json())

处理超时

try:response = httpx.get('https://httpbin.org/delay/5', timeout=2.0)
except httpx.TimeoutException:print("请求超时")

3. 异步请求

httpx 支持异步操作,适合高性能场景。

发送异步 GET 请求

import httpx
import asyncioasync def fetch(url):async with httpx.AsyncClient() as client:response = await client.get(url)print(response.text)asyncio.run(fetch('https://httpbin.org/get'))

发送异步 POST 请求

async def post_data(url, data):async with httpx.AsyncClient() as client:response = await client.post(url, json=data)print(response.json())asyncio.run(post_data('https://httpbin.org/post', {'key': 'value'}))

并发请求

async def fetch_multiple(urls):async with httpx.AsyncClient() as client:tasks = [client.get(url) for url in urls]responses = await asyncio.gather(*tasks)for response in responses:print(response.text)urls = ['https://httpbin.org/get', 'https://httpbin.org/ip']
asyncio.run(fetch_multiple(urls))

4. 高级功能

使用 HTTP/2

# 启用 HTTP/2
client = httpx.Client(http2=True)
response = client.get('https://httpbin.org/get')
print(response.http_version)  # 输出协议版本

文件上传

files = {'file': open('example.txt', 'rb')}
response = httpx.post('https://httpbin.org/post', files=files)
print(response.json())

流式请求

# 流式上传
def generate_data():yield b"part1"yield b"part2"response = httpx.post('https://httpbin.org/post', data=generate_data())
print(response.json())

流式响应

# 流式下载
with httpx.stream('GET', 'https://httpbin.org/stream/10') as response:for chunk in response.iter_bytes():print(chunk)

5. 错误处理

httpx 提供了多种异常类,方便处理错误。

处理网络错误

try:response = httpx.get('https://nonexistent-domain.com')
except httpx.NetworkError:print("网络错误")

处理 HTTP 错误状态码

response = httpx.get('https://httpbin.org/status/404')
if response.status_code == 404:print("页面未找到")

6. 配置客户端

可以通过 httpx.Client 或 httpx.AsyncClient 配置全局设置。

设置超时

client = httpx.Client(timeout=10.0)
response = client.get('https://httpbin.org/get')
print(response.text)

设置代理

proxies = {"http://": "http://proxy.example.com:8080","https://": "http://proxy.example.com:8080",
}
client = httpx.Client(proxies=proxies)
response = client.get('https://httpbin.org/get')
print(response.text)

设置基础 URL

client = httpx.Client(base_url='https://httpbin.org')
response = client.get('/get')
print(response.text)

7. 结合 Beautiful Soup 使用

httpx 可以与 Beautiful Soup 结合使用,抓取并解析网页。

import httpx
from bs4 import BeautifulSoup# 抓取网页
response = httpx.get('https://example.com')
html = response.text# 解析网页
soup = BeautifulSoup(html, 'lxml')
title = soup.find('title').text
print("网页标题:", title)

8. 示例:抓取并解析网页

以下是一个完整的示例,展示如何使用 httpx 抓取并解析网页数据:

import httpx
from bs4 import BeautifulSoup# 抓取网页
url = 'https://example.com'
response = httpx.get(url)
html = response.text# 解析网页
soup = BeautifulSoup(html, 'lxml')# 提取标题
title = soup.find('title').text
print("网页标题:", title)# 提取所有链接
links = soup.find_all('a', href=True)
for link in links:href = link['href']text = link.textprint(f"链接文本: {text}, 链接地址: {href}")

9. 注意事项

性能:httpx 的异步模式适合高并发场景。

兼容性:httpx 的 API 与 requests 高度兼容,迁移成本低。

HTTP/2:如果需要使用 HTTP/2,确保安装了 httpx[http2]。

通过以上方法,可以使用 httpx 高效地发送 HTTP 请求,并结合其他工具(如 Beautiful Soup)实现数据抓取和解析。


文章转载自:

http://69nY6rDF.yhsrp.cn
http://n2lnxkcO.yhsrp.cn
http://q7oREGgU.yhsrp.cn
http://6Gfsg3WW.yhsrp.cn
http://lkGafLQh.yhsrp.cn
http://8IKk5ifx.yhsrp.cn
http://s7Cv0Q4v.yhsrp.cn
http://gWSBwywC.yhsrp.cn
http://FA88wGLr.yhsrp.cn
http://1DJV7JE4.yhsrp.cn
http://IQJCrc5Z.yhsrp.cn
http://i4UWadI6.yhsrp.cn
http://Dey5GsNY.yhsrp.cn
http://J29gX9yo.yhsrp.cn
http://URTjB5sz.yhsrp.cn
http://NcnhptIE.yhsrp.cn
http://toBEXQTN.yhsrp.cn
http://n2ZMgc1l.yhsrp.cn
http://MP7nuf07.yhsrp.cn
http://xcOtKhcQ.yhsrp.cn
http://6tOfJskI.yhsrp.cn
http://6UEpkd6o.yhsrp.cn
http://UDjJcxYF.yhsrp.cn
http://rdMCWatc.yhsrp.cn
http://2TwBwj8I.yhsrp.cn
http://fXnGfgW3.yhsrp.cn
http://iWzLjKpH.yhsrp.cn
http://bQ7elczW.yhsrp.cn
http://wJ6ZZ72V.yhsrp.cn
http://axZ08tBF.yhsrp.cn
http://www.dtcms.com/wzjs/659414.html

相关文章:

  • 中国城乡与住房建设部网站首页建筑工程公司注册资金要求
  • 网站建设必学课程苏州技术馆网站建设
  • 小说发表哪个网站赚钱网站查询是否安全
  • 做网站费用分摊入什么科目一般注册公司要多少钱
  • 空气过滤棉上海网站建设wordpress 外网访问不了
  • 嘉兴哪家公司做网站比较好的商城分销系统
  • 做网站的联系方式百度关键词推广费用
  • 成都视频剪辑培训青岛seo结算
  • 接入服务商网站备案管理系统技术规范要求泉州厦门网站建设公司
  • 织梦做的网站要怎么放到浏览器163企业邮箱免费版
  • 济南网站建设咨 询小七网站做授权登录
  • 学校响应式网站建设广州网络推广平台
  • 打造一个网站深圳建网站就找兴田德润
  • 做百度网站优化多少钱全国装饰公司排名100强名单
  • 娄底优秀网站建设在杭州注册公司需要什么条件
  • 网站建设 接单最好免费观看高清视频韩国
  • 阿里云自助建站模板天津定制网站建设商店设计
  • 免费php mysql网站保定网站建设推广公司怎么样
  • 网站接入商排名广州网站建设那家好
  • 住房建设部官方网站外贸seo是什么意思
  • 网络营销资讯网站中国建设银行官网首页
  • 网站建站代理seo是什么意思som
  • 慈溪网站制作wordpress图片轮播
  • 求推荐好的网站建设平台毕业设计模板
  • 深圳建站公司模板北京市工程建设交易中心
  • 学习网站大全wordpress占用内存过大
  • 可以做笔试面试题的网站福清做网站的公司
  • 天津做网站的网络公司所有北京网站建设公司
  • 合作建站协议网站收录提交入口官网
  • seo网站优化排名学做网站网