Reptile: requests-cookie-session

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('写入完成')
posted @ 2019-01-21 16:42  微雨丶  阅读(106)  评论(0编辑  收藏  举报