引入
- 在python实现的网络爬虫中,用于网络请求发送的模块有两种,第一种为urllib模块,第二种为requests模块。urllib模块是一种比较古老的模块,在使用的过程中较为繁琐和不便。当requests模块出现后,就快速的代替了urllib模块,因此,在我们课程中,推荐大家使用requests模块。
- Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。
what is requests
- requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简洁高效。在爬虫领域中占据着半壁江山的地位。
为什么要使用requests模块
- 在使用urllib模块的时候,会有诸多不便之处,总结如下:
- 手动处理url编码
- 手动处理post请求参数
- 处理cookie和代理操作繁琐
- ……
- 使用requests模块:
- 自动处理url编码
- 自动处理post请求参数
- 简化cookie和代理操作
- ……
如何使用requests模块
- 环境安装
pip install requests
- 使用流程/编码流程
- 指定url
- 基于requests模块发起请求
- 获取响应对象中的数据值
- 持久化存储
第一个爬虫程序
- 需求:爬取搜狗首页的页面数据
#导包 import requests #step_1:指定url url = 'https://www.sogou.com/' #step_2:发起请求:使用get方法发起get请求,该方法会返回一个响应对象。参数url表示请求对应的url response = requests.get(url=url) #step_3:获取响应数据:通过调用响应对象的text属性,返回响应对象中存储的字符串形式的响应数据(页面源码数据) page_text = response.text #step_4:持久化存储 with open('./sogou.html','w',encoding='utf-8') as fp: fp.write(page_text) print('爬取数据完毕!!!')