Python爬虫基础:从urllib到requests
需积分: 9 19 浏览量
更新于2024-08-05
收藏 6KB MD 举报
"爬虫第二天的学习内容主要涵盖了网络请求库的核心知识点,特别是Python的urllib库和requests库。"
在Python的网络爬虫开发中,urllib库是一个基础且重要的工具,它提供了发起网络请求和处理响应的基础功能。urllib库包含多个子模块,其中`urllib.request`是最为核心的部分。
1. urllib.request模块
- `urlopen(url|request:Request, data=None)`:这是发起HTTP请求的关键函数,可以接受URL或Request对象,data参数通常用于POST请求的数据,需转换为bytes类型。
- `urlretrieve(url, filename)`:用于下载URL指向的资源,并保存到本地的filename指定的文件。
- `build_opener(*handler)`:创建一个自定义的opener,可以添加额外的处理器如HTTPHandler、ProxyHandler等。
- `opener.open(url|request, data=None)`:通过已构建的opener发起请求。
在构建请求时,`Request`类是一个重要的辅助工具,可以设置HTTP头、数据等。例如:
```python
data = {'wd': '千锋'}
request = Request(url, data=urlencode(data).encode())
```
这里使用了`urlencode`函数对字典数据进行编码,以便于在网络请求中传输。
2. HTTPHandler和ProxyHandler
- `HTTPHandler`处理HTTP协议的请求。
- `ProxyHandler(proxies={'http':'http://proxy_ip:port'})`用于设置代理服务器,通过代理IP和端口发起请求。
3. HTTPCookieProcessor和CookieJar
- `HTTPCookieProcessor(CookieJar())`用于处理HTTP请求中的Cookie。
- `http.cookiejar.CookieJar`类是一个存储和管理Cookie的对象。
4. urllib.parse模块
- `quote(txt)`:将中文字符串转换为URL编码,确保字符串安全地用于URL。
- `urlencode(query:dict)`:将字典形式的查询参数转化为URL编码的字符串,适用于GET请求的查询参数。
5. requests库
requests库是对urllib库的进一步封装,提供更加简洁易用的API,是Python中最常用的网络请求库。
- `requests.request()`是requests库的主要函数,可以发送各种HTTP请求,并提供了如超时、会话管理等高级特性。
- 其他常用的方法如`requests.get()`, `requests.post()`等,直接对应HTTP的GET和POST请求。
安装requests库可以使用:
```
pip install requests -i https://mirrors.aliyun.com/pypi/simple
```
通过这些基础,我们可以构建起简单的网络爬虫,获取网页数据。但要注意,合法和道德的爬虫行为应当尊重网站的robots.txt规则,避免对目标网站造成过大的访问压力。
2024-07-03 上传
2019-10-22 上传
2020-01-04 上传
2024-04-20 上传
就业实习jian职mai东西
- 粉丝: 1
- 资源: 3
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫