requests携带cookie的get请求:
session对象会自己动携带cookie参数,所有使用session发起带cookie的请求
1.打开浏览器,输入豆瓣网的账号密码
2.点击 F12 键打开抓包工具 network,点击登陆按钮
3.找到 Login 负责URL 和 data参数,还有headers请求头信息,后面要用 # url为post请求的URL 地址栏的URL不是
4.登陆后点击个人主页,复制地址栏的URL # URL是get请求的URL直接使用地址栏的URL就可以了
# 需求:爬取豆瓣网,用户登陆后个人主页的数据
# cookie的作用:服务器端使用cookie来记录客户端的状态信息
# 实现流程:
# 执行登陆操作(获取cookie)
# 发起个人主页请求时,需将cookie携带到该请求中
# 注意:session对象,发送请求(会将cookie对象自动存储)
import requests
import os
# 1.模拟浏览器进行登陆
if not os.path.exists('./douban'):
os.mkdir('./douban')
# 获取登陆url
login_url = 'https://www.douban.com/accounts/login'
# 定义参数
data = {
'source': 'index_nav',
'form_email': '*******', # 账号
'form_password': '*****' # 密码
}
# 定义UA
headers = {
'User - Agent': 'Mozilla / 5.0(Windows NT 10.0) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / '
'65.0.3325.181Safari / 537.36'
}
# 获取session对象
session = requests.session()
# 发起请求,不需要获取请求返回的数据
session.post(url=login_url, data=data, headers=headers)
# 定义个人主页url
url = 'https://www.douban.com/people/148122957/'
# 发起请求并获得返回数据
response = session.get(url=url, headers=headers)
# 返回数据
page_text = response.text
# 存储数据
with open('douban/homepage.html', 'w', encoding='utf-8') as fp:
fp.write(page_text)
print('写入完成')