requests模块
什么是requests模块
- python原生一个基于网络请求的模块,模拟浏览器发起请求。
为什么要使用requests模块
- 1.自动处理url编码
- 2.自动处理post请求的参数
- 3.简化cookie的代理的操作:
cookie操作:
- 创建一个cookiejar对象
- 创建一个handler对象
- 创建一个operner
代理操作:
- 创建handler对象,代理ip和端口封装到该对象
- 创建openner对象
requests如何被使用
- 安装:pip install requests
- 使用流程:
- 1.指定url
- 2.使用requests模块发起请求
- 3.获取响应数据
- 4.进行持久化存储
基于requests模块发起get请求
爬取百度首页的页面数据
import requests
#指定url
url = 'https://www.baidu.com/'
#发起get请求:get方法会返回请求成功的相应对象
response = requests.get(url=url)
#获取响应中的数据值:text可以获取响应对象中字符串形式的页面数据
page_data = response.text
print(page_data)
#持久化操作
with open('./baidu.html','w',encoding='utf-8') as fp:
fp.write(page_data)
基于requests模块发起的post请求
登录豆瓣网,获取登录成功后的页面数据
import requests
#1.指定post请求的url
url = 'https://accounts.douban.com/login'
#封装post请求的参数
data = {
"source": "movie",
"redir": "https://movie.douban.com/",
"form_email": "xxx@qq.com",
"form_password": "xxx",
"login": "登录",
}
#自定义请求头信息
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/837.36',
}
#2.发起post请求
response = requests.post(url=url,data=data,headers=headers)
#3.获取响应对象中的页面数据
page_text = response.text
#4.持久化操作
with open('./douban.html','w',encoding='utf-8') as fp:
fp.write(page_text)
浙公网安备 33010602011771号