news 2026/9/4 9:27:13

urllib3--爬取网页内容

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
urllib3--爬取网页内容

简介

Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python包

urllib3网址:https://pypi.org/project/urllib3/

Urllib3提供了很多python标准库里所没有的重要特性:

连接池&线程安全

客户端SSL/TLS验证

文件分部编码上传

协助处理重复请求和HTTP重定位

支持压缩编码

支持HTTP和SOCKS代理

100%测试覆盖率

基本用法

1. 导入urllib3模块:

import urllib3

2. 创建一个PoolManager实例:

http = urllib3.PoolManager()

3、 通过request()方法创建一个请求,返回的r是一个HTTPResponse对象

r = http.request('GET', 'http://httpbin.org/get')

4、添加头部字段headers

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0"} r = http.request('GET', 'http://httpbin.org/get', headers=headers)

5、添加请求参数

data = {"username":"sunwukong","password":"123456"} r = http.request('GET', 'http://httpbin.org/get', fields=data)

典型用法

import urllib3 # 创建PoolManager实例 http = urllib3.PoolManager() # 发送GET请求 response = http.request('GET', 'https://httpbin.org/get') # 发送POST请求 response = http.request('POST', 'https://httpbin.org/post', fields={'key': 'value'}) # 获取响应数据 print(response.status) print(response.data.decode('utf-8')) # 记得关闭连接池 http.clear()

实训

1、get请求

import urllib3 http = urllib3.PoolManager() data = {"username":"sunwukong","password":"123456"} r = http.request('GET', 'http://httpbin.org/get', fields=data) print(r.data.decode('utf-8'))

2、配置headers

import urllib3 http = urllib3.PoolManager() headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0"} r = http.request('GET', 'http://httpbin.org/get', headers=headers) print(r.data.decode('utf-8'))

3、post请求

import urllib3 import json http = urllib3.PoolManager() data = {"username":"sunwukong","password":"123456"} data = json.dumps(data).encode("utf-8") headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0", "Content-Type":"application/json"} r = http.request('post', 'http://httpbin.org/post', headers=headers, body=data) print(r.data.decode('utf-8'))
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 9:27:12

开源舆情系统思通舆情:本地化部署与智能分析实战指南

简介:思通舆情是一款面向企业用户与数字化风控团队的开源免费舆情分析系统,聚焦品牌声誉管理、风险预警与竞品动态监测等核心场景,支持本地化一键部署,降低中小企业在舆情监控领域的技术门槛与使用成本。资源包共2000个文件&#…

作者头像 李华
网站建设 2026/9/4 9:23:59

TI CCS ccxml自动配置系统:嵌入式调试连接意图翻译

简介:本资源是面向嵌入式开发工程师与TI C2000系列DSP初学者的CCS目标配置自动化管理工具,聚焦解决手动编写ccxml调试配置文件易出错、效率低、多项目切换维护难等痛点。系统基于Code Composer Studio环境构建,支持根据项目属性页中设定的设备…

作者头像 李华
网站建设 2026/9/4 9:23:34

从日常项目里总结的Java编码规范实践清单

大多数Java项目的混乱,不是因为程序员技术差,而是因为规范清单太懂事,总想讨好所有人。我在日常项目的git历史里翻来覆去,见过太多用良好意图堆出来的烂代码。没有经过线上教训的规范都是纸面优雅——真正生效的规约,不…

作者头像 李华
网站建设 2026/9/4 9:22:44

提交Linux内核补丁的方法

目录 1.安装git、git-email软件 2.克隆linux-next分支 kernel.org官方仓库克隆(慢) 清华大学镜像站克隆(快,但是要排队) 克隆中途意外中断的处理方法 3.配置git 填写[sendemail] 填写[user] 4.建立新的开发分支并切换到开发分支 5.修改代码,完成开发和测试工作 6.撰…

作者头像 李华
网站建设 2026/9/4 9:20:01

T12烙铁电路稳定性的关键:二极管与电容的选型与布局

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华