python 携带cookie获取页面内容

有时会遇到爬取的页面需要登录,这就要带上cookie了。

下面记录了几种携带cookie的方法

# coding=utf-8
import requests

s = requests.Session()
login_data = {'username': 'teacher', 'password': 'teacher'}
# 方法1
# resp1 = s.post('http://192.168.2.132/login/', data=login_data)
# r = s.get('http://192.168.2.132/personal_live/')

# 方法2
# resp1 = requests.post('http://192.168.2.132/login/', data=login_data)
# print('cookie:' + str(resp1.cookies))
# r = requests.get('http://192.168.2.132/personal_live/', cookies=resp1.cookies)

# 方法3
# c = {'sessionid': '3ps7ouyox1l43alcb7rafxg9dtfnurcb'}
# r = requests.get('http://192.168.2.132/personal_live/', cookies=c)

c = {
    '.CNBlogsCookie': 'D020D...07',
    '.Cnblogs.AspNetCore.Cookies': 'CfDJ...WA',
    'SyntaxHighlighter': 'java',
    'SERVERID': '560...34'

}
r = requests.get('https://i.cnblogs.com/EditPosts.aspx?opt=1', cookies=c)

resp = r.text
print(resp)

方法1是利用同一个Session,先登录,再访问有限制页面。

方法2是直接使用requests,和1一样,同样是先登录,获取cookie,携带cookie访问限制页面。

方法3是手动从浏览器获取cookie,再携带cookie访问限制页面。

优缺点:

1,2差不多,都是直接运行脚本就可以了,但是需要登录页面没有验证码一类的处理。

3可以应对各种网站,但是需要手动获取cookie。

posted @ 2018-01-31 15:50  懒企鹅  阅读(1290)  评论(0)    收藏  举报