cookie登陆qq空间的两种方式

标题: qq空间cookie登陆的两种方式

  1. requests.get(url,headers) 其中cookie在headers头文件中,每次请求都要带上headers
  2. s=request.session() s.cookies[‘xxxxx’] = “cookie的值”,每次请求不用再带上headers,直接get就好

1、需求分析:

  1. 登陆qq空间实现个人或者好友的说说列表信息获取

2、找到关键信息

  2、1观察qq空间信息来来自由JS脚本返回的信息:

这里写图片描述

要仔细在调试页面找到这个返回json信息的js路径,绝对找的到,我也找了好久!!!

  2、1获取cookie信息:

这里写图片描述

3、逻辑实现:

获取这段js的路径链接:url = 'https:/xxxxxxxx'  # 步骤1
获取登陆qq空间后的cookie: cookie = 'xxxxxxxxxx'  # 步骤2
用带有cookie信心的headers请求头请求url: requests.get(url,headers=headers)  # 步骤3

4、代码实现:

(1)方法1:每次请求带上headers信息:

import requests
"""
方法1:每次请求带上headers,其中cookie包含在headers中
"""

 cookie = 'pgv_pvi=270815232; ptui_loginuin=937886362; pt2gguin=o0937886362; RK=rf7xbFDkVu; ptcz=014ce957fb0ff44bcee8bc4101d17bf49abb57ffa854cd0b1caf770a8314f854; luin=o0937886362; tvfe_boss_uuid=3a70612a82d1d77b; pgv_pvid=7697825562; o_cookie=937886362; qz_screen=1920x1080; QZ_FE_WEBP_SUPPORT=1; __Q_w_s__QZN_TodoMsgCnt=1; mobileUV=1_16286309a46_7ca70; __Q_w_s_hat_seed=1; lskey=0001000001b6085bfa9d198e4ccd7311643f2db6b37c66a1ce06d3bb657c0e10265aa2fd146c9d19797dd663; uid=263517280; __layoutStat=9; pgv_si=s3919702016; ptisp=cm; pgv_info=ssid=s2599169595; uin=o0937886362; skey=@fsQmYSjGH; p_uin=o0937886362; pt4_token=tOVlSqaMPCSUu9Ugwpe6ceD6xYEVaUqZjyqzyC7JG9k_; p_skey=8anozI6XdDWG899lACBORrIjrr4f*FQnFkgrVybg3uY_; fnc=2; Loading=Yes; x-stgw-ssl-info=7c5dada4d52e9c591363171b2262b736|0.145|1523237098.147|1|.|Y|TLSv1.2|ECDHE-RSA-AES128-GCM-SHA256|42500|h2|0; qzmusicplayer=qzone_player_937886362_1523237099240; qqmusic_uin=; qqmusic_key=; qqmusic_fromtag=; 937886362_todaycount=0; 937886362_totalcount=20751; cpu_performance_v8=7'

# 这是返回我的说说内容信息的js路径,需要慢慢找到这个路径
get_url = 'https://user.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6?uin=937886362&ftype=0&sort=0&pos=0&num=20&replynum=100&g_tk=1278728291&callback=_preloadCallback&code_version=1&format=jsonp&need_private_comment=1&qzonetoken=30dae7408817cca121ec834c6d091b546b6dc0b75a74ba7dbedaf143219da25cf72e09624c2240d2&g_tk=1278728291'
# 构建请求头,我这这里加上了user-agent
headers = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
  'cookie':cookie}
# 每次都要加带有cookie的headers
b = requests.get(get_url,headers=headers) 
print(b.text)

结果(和在空间中看到的一样):

这里写图片描述


(2)方法2:session.cookies赋值,不用每次请求都带上含有cookie的headers

import requests
s =requests.session()  #建立一个session会话
cookie = 'pgv_pvi=270815232; ptui_loginuin=937886362; pt2gguin=o0937886362; RK=rf7xbFDkVu; ptcz=014ce957fb0ff44bcee8bc4101d17bf49abb57ffa854cd0b1caf770a8314f854; luin=o0937886362; tvfe_boss_uuid=3a70612a82d1d77b; pgv_pvid=7697825562; o_cookie=937886362; qz_screen=1920x1080; QZ_FE_WEBP_SUPPORT=1; __Q_w_s__QZN_TodoMsgCnt=1; mobileUV=1_16286309a46_7ca70; __Q_w_s_hat_seed=1; lskey=0001000001b6085bfa9d198e4ccd7311643f2db6b37c66a1ce06d3bb657c0e10265aa2fd146c9d19797dd663; uid=263517280; __layoutStat=9; pgv_si=s3919702016; ptisp=cm; pgv_info=ssid=s2599169595; uin=o0937886362; skey=@fsQmYSjGH; p_uin=o0937886362; pt4_token=tOVlSqaMPCSUu9Ugwpe6ceD6xYEVaUqZjyqzyC7JG9k_; p_skey=8anozI6XdDWG899lACBORrIjrr4f*FQnFkgrVybg3uY_; fnc=2; Loading=Yes; x-stgw-ssl-info=7c5dada4d52e9c591363171b2262b736|0.145|1523237098.147|1|.|Y|TLSv1.2|ECDHE-RSA-AES128-GCM-SHA256|42500|h2|0; qzmusicplayer=qzone_player_937886362_1523237099240; qqmusic_uin=; qqmusic_key=; qqmusic_fromtag=; 937886362_todaycount=0; 937886362_totalcount=20751; cpu_performance_v8=7'

s.cookies['cookie'] = cookie # 吧cookie信息添加到session会话中
# 找到返回数据的js路径链接
get_url = 'https://user.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6?uin=937886362&ftype=0&sort=0&pos=0&num=20&replynum=100&g_tk=1278728291&callback=_preloadCallback&code_version=1&format=jsonp&need_private_comment=1&qzonetoken=30dae7408817cca121ec834c6d091b546b6dc0b75a74ba7dbedaf143219da25cf72e09624c2240d2&g_tk=1278728291'
# 此时headers中没有cookie
headers = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}

b = s.get(get_url)   #这里我也没有调用headers中的user-qgent信息
print(b.text)

#  此时结果同上面方法1是一样的,这里就不贴出来了!

1、本人python小白,如有说错,请包含,不喜勿喷,一起进步,一起学习。

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值