爬虫基础_httpx

本文介绍了为什么需要使用httpx模块,特别是在处理http2.0协议的网站时。httpx提供了与requests类似的API,同时支持http2.0和异步操作,通过示例展示了如何开启http2.0支持和查看协议版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要使用httpx

requests模块不支持http2.0协议, 在访问使用http2.0协议的网站时, 就需要用到httpx

# 使用requests模块访问http2.0的网站, 会报错
import requests

url = 'https://spa16.scrape.center/'
headers = {
   
   
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}

resp = requests.get(url=url, headers
网络爬虫使用HTTPX库构建可以分为以下几个步骤,在思维导图的形式下,我们可以将关键点梳理如下: 1. **基础组件** - HTTP请求:创建`httpx.Client`实例 - GET、POST等方法:发起HTTP请求(GET用于数据抓取) 2. **URL管理** - 爬取策略:深度优先还是广度优先? 3. **响应处理** - 解析HTML:使用如BeautifulSoup解析HTML内容 - 数据提取:查找并获取所需信息 4. **链接发现** - 链接分析:识别页面中的链接,确定是否需要抓取 - 存储管理:跟踪已访问的URL避免重复 5. **错误处理与重试** - 异常处理:应对网络中断、服务器拒绝等问题 - 重试机制:对于暂时不可达的资源设置合适的重试次数 6. **性能优化** - 并发控制:使用异步或线程池提高并发效率 - 深度限制:设置爬取深度防止无限递归 7. **存储和结构化** - 数据存储:CSV、JSON、数据库选择合适的保存格式 - 数据结构:使用字典、列表或其他数据结构组织抓取的数据 8. **法律法规遵守** - 取消请求头:尊重robots.txt规则 - 使用代理:遵守网站的IP限制策略 **思维导图示意图**: ``` +-----------------------+ | 网络爬虫HTTPX思维图 | +-----------------------+ | 基础组件 | | +-> httpx.Client | | | +-> 请求方法 (GET) | +-----------------------+ | URL管理 | | +-> 起始URL | | +-> 爬取策略 | +-----------------------+ | 响应处理部分 | | +-> HTML解析 | | +-> 数据提取 | +-----------------------+ | 链接发现 & 控制 | | +-> 链接分析 | | +-> 存储管理 | +-----------------------+ | 错误处理 & 重试策略 | | +-> 异常捕获 | | +-> 重试机制 | +-----------------------+ | 性能优化与调度 | | +-> 并发控制 | | +-> 深度限制 | +-----------------------+ | 数据存储与结构化 | | +-> 数据格式 (CSV/DB) | | +-> 数据组织结构 | +-----------------------+ | 法律法规遵守 | | +-> robots.txt遵守 | | +-> IP限制与代理 | +---------+ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值