0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Python抓取用户发的话题

马哥Linux运维 来源:脚本之家 作者:j_hao104 2021-09-05 09:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大多数APP里面返回的是json格式数据,或者一堆加密过的数据 。这里以超级课程表APP为例,抓取超级课程表里用户发的话题。

1、抓取APP数据包

表单:

表单中包括了用户名和密码,当然都是加密过了的,还有一个设备信息,直接post过去就是。

另外必须加header,一开始我没有加header得到的是登录错误,所以要带上header信息。

2、登录

登录代码:

import urllib2from cookielib import CookieJarloginUrl = ‘http://120.55.151.61/V2/StudentSkip/loginCheckV4.action’headers = {‘Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’,

‘User-Agent’: ‘Dalvik/1.6.0 (Linux; U; Android 4.1.1; M040 Build/JRO03H)’,‘Host’: ‘120.55.151.61’,‘Connection’: ‘Keep-Alive’,‘Accept-Encoding’: ‘gzip’,‘Content-Length’: ‘207’,}loginData =

‘phoneBrand=Meizu&platform=1&deviceCode=868033014919494&account=FCF030E1F2F6341C1C93BE5BBC422A3D&phoneVersion=16&password=A55B48BB75C79200379D82A18C5F47D6&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&’cookieJar = CookieJar()opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))req = urllib2.Request(loginUrl, loginData, headers)loginResult = opener.open(req).read()print loginResult

登录成功 会返回一串账号信息的json数据

和抓包时返回数据一样,证明登录成功

3、抓取数据

用同样方法得到话题的url和post参数

下见最终代码,有主页获取和下拉加载更新。可以无限加载话题内容。

#!/usr/local/bin/python2.7# -*- coding: utf8 -*-“”“超级课程表话题抓取”“”import urllib2from cookielib import CookieJarimport json‘’‘ 读Json数据 ’‘’def fetch_data(json_data):

data = json_data[‘data’]timestampLong = data[‘timestampLong’]messageBO = data[‘messageBOs’]topicList = []for each in messageBO:topicDict = {}if each.get(‘content’, False):

topicDict[‘content’] = each[‘content’]topicDict[‘schoolName’] = each[‘schoolName’]topicDict[‘messageId’] = each[‘messageId’]topicDict[‘gender’] = each[‘studentBO’][‘gender’]topicDict[‘time’] = each[‘issueTime’]print each[‘schoolName’],

each[‘content’]topicList.append(topicDict)return timestampLong, topicList‘’‘ 加载更多 ’‘’

def load(timestamp, headers, url):headers[‘Content-Length’] = ‘159’loadData = ‘timestamp=%s&phoneBrand=Meizu&platform=1&genderType=-1&topicId=19&phoneVersion=16&selectType=3&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&’ % timestampreq = urllib2.Request(url, loadData, headers)loadResult = opener.open(req)

.read()loginStatus = json.loads(loadResult).get(‘status’, False)if loginStatus == 1:print ‘load successful!’timestamp, topicList = fetch_data(json.loads(loadResult))load(timestamp, headers, url)else:print ‘load fail’print loadResultreturn FalseloginUrl =

‘http://120.55.151.61/V2/StudentSkip/loginCheckV4.action’topicUrl =

‘http://120.55.151.61/V2/Treehole/Message/getMessageByTopicIdV3.action’headers = {‘Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’,‘User-Agent’: ‘Dalvik/1.6.0 (Linux; U; Android 4.1.1; M040 Build/JRO03H)’,‘Host’: ‘120.55.151.61’,‘Connection’: ‘Keep-Alive’,‘Accept-Encoding’: ‘gzip’,‘Content-Length’: ‘207’,}

‘’‘ ---登录部分--- ’‘’loginData = ‘phoneBrand=Meizu&platform=1&deviceCode=868033014919494&account=FCF030E1F2F6341C1C93BE5BBC422A3D&phoneVersion=16&password=A55B48BB75C79200379D82A18C5F47D6&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&’cookieJar = CookieJar()opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))req = urllib2.Request(loginUrl, loginData, headers)loginResult = opener.open(req).read()loginStatus = json.loads(loginResult).get(‘data’, False)if loginResult:print ‘login successful!’else:print ‘login fail’print loginResult‘’‘ ---获取话题--- ’‘’topicData =

‘timestamp=0&phoneBrand=Meizu&platform=1&genderType=-1&topicId=19&phoneVersion=16&selectType=3&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&’headers[‘Content-Length’] = ‘147’topicRequest = urllib2.Request(topicUrl, topicData, headers)topicHtml = opener.open(topicRequest).read()topicJson = json.loads(topicHtml)topicStatus = topicJson.get(‘status’, False)print topicJsonif topicStatus == 1:print ‘fetch topic success!’timestamp, topicList = fetch_data(topicJson)load(timestamp, headers, topicUrl)

结果:

562957e4-0dd5-11ec-8fb8-12bb97331649.jpg

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7364

    浏览量

    95162
  • APP
    APP
    +关注

    关注

    33

    文章

    1596

    浏览量

    76196
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90424

原文标题:利用Python爬虫抓取手机APP的传输数据

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    机器人主控核心板米尔RK3576 + ROS2,NPU加速实现目标跟随与机械臂抓取

    操作”——识别特定物体、主动跟随、近距离抓取。本文将在此基础上,集成深度摄像头,实现机器人核心功能: 使用米尔RK3576 NPU加速MixFormerV2进行目标跟踪,替代传统OpenCV算法
    发表于 04-10 21:23

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    Fusion的简单方法。在本示例中,我们将演示如何使用Python脚本运行光学仿真,以向用户简要概述这种跨平台的仿真能力。 用例概览 文件路径 用户可以在样本文件的文件夹中找到所有文件。包含这些文件
    发表于 03-31 09:39

    关于冷却的话题:手动控制 5V PWM 风扇,通过脚本控制,并通过内核自动控制

    冷却的话题已经多次讨论过。有些人认为风扇辅助冷却是必要的,其他人发誓被动冷却还有一些人认为这个话题被高估了,并认为没有必要冷却 VF2。关于这个问题的不同意见是正常的,也完全没问题。在这里,我只想
    发表于 03-18 07:13

    利用拼多多用户API进行粉丝数据分析,有效提升用户粘性

    ​ 在电商运营中,理解并维系核心用户群体至关重要。拼多多开放平台提供的用户API,特别是与粉丝数据相关的接口,为商家深入分析粉丝行为、精准运营、提升用户粘性提供了强大的数据支持。本文将探讨如何
    的头像 发表于 12-30 10:38 445次阅读
    <b class='flag-5'>利用</b>拼多多<b class='flag-5'>用户</b>API进行粉丝数据分析,有效提升<b class='flag-5'>用户</b>粘性

    IEEE 802.11af 与空白频谱无线技术的话题

    IEEE 802.11af 与空白频谱无线技术的话题
    的头像 发表于 12-14 15:12 2084次阅读

    借助京东API,轻松分析用户行为,优化店铺页面布局!

    ​  在竞争激烈的电商环境中,精准把握用户行为是提升店铺转化率的关键。京东开放平台提供了强大的API接口,让商家能够便捷地获取宝贵的用户行为数据。本文将介绍如何利用这些API进行用户
    的头像 发表于 12-10 14:40 655次阅读
    借助京东API,轻松分析<b class='flag-5'>用户</b>行为,优化店铺页面布局!

    京东API助力,实现会员精准营销,提升用户复购率!

    将从技术角度,详细解析如何利用京东API实现会员精准营销,并提供实用代码示例。 1. 京东API简介 京东API是一套开放的接口集合,允许开发者访问京东平台的用户数据、订单信息、商品库存等资源。通过API,商家可以自动化获取用户
    的头像 发表于 12-09 17:02 905次阅读
    京东API助力,实现会员精准营销,提升<b class='flag-5'>用户</b>复购率!

    淘宝商品评论电商API接口:提升销量与用户评论的深入解析

    一、利用淘宝商品评论电商API接口了解用户需求 首先,商家需要了解淘宝商品评论电商API接口的基本功能和使用方法。该接口可以实时抓取商品评论数据,包括文字评价、评分、图片评价等,帮助商家全面了解
    的头像 发表于 11-13 10:11 568次阅读

    SL427数据采集传输到取用水管理平台

    模式,为取用水管理平台提供了标准化数据接口。 某地全面推行取用水计量信息化系统建设,要求实现灌区、工厂、自来水厂、二供泵站等多个场景等流量计数据对接到取用水管理平台中。由于监测站点数量多,要求SL427通信设备具备良好性能与可靠
    的头像 发表于 11-07 17:14 890次阅读
    SL427数据采集传输到<b class='flag-5'>取用</b>水管理平台

    ILA 抓取MCU200T的内部信号

    我们在调BUG的过程中单纯利用引脚输出中间变量的方法可能比较困难,因此我们在实际的开发过程中使用了ILA内嵌式逻辑分析仪来进行内部信号的捕捉和观察。 1、在E203的 vivado工程中打开IP
    发表于 10-29 08:03

    商品销量数据抓取接口

    原理、实现步骤、代码示例和注意事项。内容基于Python技术栈,确保真实可靠。 一、接口原理 商品销量数据通常存储在电商平台的服务器上(如淘宝、京东)。抓取接口的核心是通过HTTP请求模拟用户行为,从目标页面或API获取数据。
    的头像 发表于 10-21 18:02 803次阅读
    商品销量数据<b class='flag-5'>抓取</b>接口

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

    【创龙TL3562-MiniEVM开发板试用体验】7、python测试

    =W0603 global exitright # 获取用户输入 exitright = input(\"输入字母q后,按下回车以退出播放\\\\n\") try
    发表于 08-05 11:09

    利用API提升电商用户体验:个性化推荐系统

    的推荐算法,实时为用户提供精准的购物建议。本文将逐步解析如何利用API构建个性化推荐系统,提升用户体验。 1. 个性化推荐系统概述 个性化推荐系统通过分析用户行为数据(如浏览历史、购买
    的头像 发表于 07-14 14:45 842次阅读
    <b class='flag-5'>利用</b>API提升电商<b class='flag-5'>用户</b>体验:个性化推荐系统

    拼多多电商 API 接口与竞品,数据抓取速度大较量

    在当今电商行业,数据抓取速度是衡量平台竞争力的核心指标之一。高效的 API(应用程序接口)能显著提升数据分析、库存管理和用户个性化推荐的效率。本文将深入比较拼多多电商 API 接口与主要竞品(如淘宝
    的头像 发表于 07-09 15:29 967次阅读