利用cookies跳过系统登录功能进行数据的获取

声明:本次利用cookies,跳过登录功能进行数据获取,功能点很简单;用于个人笔记而已。

一、开发思路

1 通过cookies进行模拟登录
2 通过对界面的请求分析确定所抓取数据的对应位置
3 抓取出来的数据可能是json字符串,所有需要使用json.loads()方法对json字符串转对象
4 解析json,写入数组即完成
(可能没有很多异常处理,后期自己实际开发的时候,进行异常的处理,确保代码成功率)

二、涉及模块

import json #用于将json字符串转换为json对象
import requests # 用于对网页进行发起请求

三、各个功能

1 cookies处理

# 重新组装cookies
def deal_cookies(cookies_str):  
    cookiesA = {}
    for line in cookie_str.split(';'):
        key, value = line.split('=', 1)
        cookiesA[key] = value
    return cookiesA

2 数据获取

# post 请求数据的获取  cookies需必传
def deal_post(url,cookies,headers=None):  
    req = requests.post(url, headers=headers,cookies = cookies)
    json_Data = req.content.decode('utf-8')
    return json_Data

3 数据整合

def deal_json_data(data):  # 数据的整合
    deal_data_all = []
    json_type = type(data)
    # print(json_type)
    data = json.loads(data)
    for i in data['data']:
        arr = []
        print(i)
        arr.append(i['ContentID'])
        arr.append(i['Cover'])
        arr.append(i['ContentName'])
        arr.append(i['PersonNum'])
        deal_data_all.append(arr)
    return deal_data_all

4 调用

if __name__ == '__main__':
    # 未处理的cookies
    cookie_str = 'XXXXXXXXXXXX'                          #自行在网页中进行获取
    # 准备UA和SID
    headers = {
        'User-Agent': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', #自行在网页中进行获取
        'SessionId': 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'       #自行在网页中进行获取
    }
    # 被访问url地址
    url = 'http://cqcvc.iflysse.com/net-api/excitation/sign/getWeekSign'
    adrees_url =  'http://cqcvc.iflysse.com/net-api/bosiplatform/StudentHome/GetRecommendCourse'
    # 调用函数对cookies进行处理
    cookieStr = deal_cookies(cookie_str)
    print(cookieStr)
    print('================================================================================================================================================================================')
    data = deal_post(adrees_url,headers=headers,cookies=cookieStr)
    print(data)
    print('================================================================================================================================================================================')
    deal_data_all = deal_json_data(data)
    print(deal_data_all)
    print('================================================================================================================================================================================')
    for i in deal_data_all:
        print(i)
        print('===============================================================================================================================')

四、最后获取到的数据

红色为所有数据,黄色为遍历后的数据,地址为网页中图片的地址
结果

五、网页上的样子

网页数据展示

【over】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值