0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用Python抓取用戶發(fā)的話題

馬哥Linux運維 ? 來源:腳本之家 ? 作者:j_hao104 ? 2021-09-05 09:37 ? 次閱讀

大多數(shù)APP里面返回的是json格式數(shù)據(jù),或者一堆加密過的數(shù)據(jù) 。這里以超級課程表APP為例,抓取超級課程表里用戶發(fā)的話題。

1、抓取APP數(shù)據(jù)包

表單:

表單中包括了用戶名和密碼,當(dāng)然都是加密過了的,還有一個設(shè)備信息,直接post過去就是。

另外必須加header,一開始我沒有加header得到的是登錄錯誤,所以要帶上header信息。

2、登錄

登錄代碼:

import urllib2from cookielib import CookieJarloginUrl = ‘http://120.55.151.61/V2/StudentSkip/loginCheckV4.action’headers = {‘Content-Type’: ‘a(chǎn)pplication/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數(shù)據(jù)

和抓包時返回數(shù)據(jù)一樣,證明登錄成功

3、抓取數(shù)據(jù)

用同樣方法得到話題的url和post參數(shù)

下見最終代碼,有主頁獲取和下拉加載更新??梢詿o限加載話題內(nèi)容。

#!/usr/local/bin/python2.7# -*- coding: utf8 -*-“”“超級課程表話題抓取”“”import urllib2from cookielib import CookieJarimport json‘’‘ 讀Json數(shù)據(jù) ’‘’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’: ‘a(chǎn)pplication/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)

結(jié)果:

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

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7113

    瀏覽量

    89304
  • APP
    APP
    +關(guān)注

    關(guān)注

    33

    文章

    1575

    瀏覽量

    72615
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4802

    瀏覽量

    84890

原文標(biāo)題:利用Python爬蟲抓取手機APP的傳輸數(shù)據(jù)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Python庫解析:通過庫實現(xiàn)代理請求與數(shù)據(jù)抓取

    Python中,有多個庫可以幫助你實現(xiàn)代理請求和數(shù)據(jù)抓取。這些庫提供了豐富的功能和靈活的API,使得你可以輕松地發(fā)送HTTP請求、處理響應(yīng)、解析HTML/XML/JSON數(shù)據(jù),以及進行復(fù)雜的網(wǎng)絡(luò)操作。
    的頭像 發(fā)表于 10-24 07:54 ?212次閱讀

    如何利用海外爬蟲IP進行數(shù)據(jù)抓取

    利用海外爬蟲IP進行數(shù)據(jù)抓取需要綜合考慮多個方面。
    的頭像 發(fā)表于 10-12 07:54 ?236次閱讀

    如何利用python和API查詢IP地址?

    Python中,直接查詢IP地址的地理位置或詳細信息(如所屬國家、城市等)通常需要依賴外部API服務(wù),因為Python標(biāo)準(zhǔn)庫本身不提供直接查詢IP地址地理位置的功能。以下是一個使用requests
    發(fā)表于 08-28 11:55

    第二屆大會回顧第25期 | OpenHarmony上的Python設(shè)備應(yīng)用開發(fā)

    Python以其簡單、易學(xué)和功能強大而聞名,有著廣泛的用戶群體。采用Python開發(fā)有助于降低OpenHarmony的學(xué)習(xí)門檻。如何在OpenHarmony上用Python開發(fā)設(shè)備應(yīng)用
    的頭像 發(fā)表于 08-27 11:53 ?753次閱讀
    第二屆大會回顧第25期 | OpenHarmony上的<b class='flag-5'>Python</b>設(shè)備應(yīng)用開發(fā)

    利用Python腳本登錄到交換機并創(chuàng)建VLAN

    本文將詳細介紹如何利用Python腳本登錄到交換機并創(chuàng)建VLAN。
    的頭像 發(fā)表于 08-12 17:59 ?606次閱讀

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的庫和框架以及強大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?2142次閱讀

    如何長時間抓取DTU設(shè)備實時日志?

    如何長時間抓取DTU設(shè)備實時日志?
    發(fā)表于 07-26 06:31

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學(xué)習(xí)軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?1313次閱讀

    基于Python的深度學(xué)習(xí)人臉識別方法

    基于Python的深度學(xué)習(xí)人臉識別方法是一個涉及多個技術(shù)領(lǐng)域的復(fù)雜話題,包括計算機視覺、深度學(xué)習(xí)、以及圖像處理等。在這里,我將概述一個基本的流程,包括數(shù)據(jù)準(zhǔn)備、模型選擇、訓(xùn)練過程、以及測試與評估,并附上簡單的代碼示例。
    的頭像 發(fā)表于 07-14 11:52 ?1298次閱讀

    深度學(xué)習(xí)常用的Python

    深度學(xué)習(xí)常用的Python庫,包括核心庫、可視化工具、深度學(xué)習(xí)框架、自然語言處理庫以及數(shù)據(jù)抓取庫等,并詳細分析它們的功能和優(yōu)勢。
    的頭像 發(fā)表于 07-03 16:04 ?679次閱讀

    python解析netflow數(shù)據(jù)到csv的流程詳解

    本文主要講解了linux下通過tcpdump抓取netflow數(shù)據(jù)包,并將其導(dǎo)入到wireshark進行解析,然后通過wireshark導(dǎo)出數(shù)據(jù)為json文件,再通過python腳本將其解析為csv文件以便做數(shù)據(jù)分析。
    的頭像 發(fā)表于 05-01 11:18 ?700次閱讀
    <b class='flag-5'>python</b>解析netflow數(shù)據(jù)到csv的流程詳解

    蘋果Apple Silicon芯片曝安全隱患:黑客可利用漏洞竊取用戶數(shù)據(jù)

    據(jù)悉,黑客可借助此漏洞獲取加密密鑰,進而盜取用戶個人信息。DMP作為內(nèi)存系統(tǒng)中的角色,負責(zé)推測當(dāng)前運行代碼所需訪問的內(nèi)存地址。黑客則借此可預(yù)測下一步需獲取的數(shù)據(jù)位,以此干擾數(shù)據(jù)的預(yù)取過程,進而獲悉用戶敏感數(shù)據(jù)。此類攻擊行為被稱為“Go Fetch”操作。
    的頭像 發(fā)表于 03-22 10:30 ?889次閱讀

    Pyserial庫來進行與stm32的串口通信,用write方法給32發(fā)數(shù)據(jù)時會出現(xiàn)數(shù)據(jù)的錯誤和缺失怎么解決?

    我使用的是Pyserial庫來進行與stm32的串口通信,python可以很好地接收32發(fā)來的數(shù)據(jù),但是我用write方法給32發(fā)數(shù)據(jù)時會出現(xiàn)數(shù)據(jù)的錯誤和缺失,同樣的32程序我用串口調(diào)試助手能夠成功
    發(fā)表于 03-12 07:32

    Python 控制臺CS V8.11.00 綜合開發(fā)環(huán)境用戶手冊

    電子發(fā)燒友網(wǎng)站提供《Python 控制臺CS V8.11.00 綜合開發(fā)環(huán)境用戶手冊.pdf》資料免費下載
    發(fā)表于 01-29 12:00 ?0次下載
    <b class='flag-5'>Python</b> 控制臺CS V8.11.00 綜合開發(fā)環(huán)境<b class='flag-5'>用戶</b>手冊

    Python智能家居系統(tǒng)代碼介紹

    與設(shè)備的控制、用戶界面設(shè)計以及擴展性與可靠性等方面。 一、系統(tǒng)結(jié)構(gòu)與功能模塊 Python智能家居系統(tǒng)的整體結(jié)構(gòu)可以分為三個主要模塊:傳感器模塊、控制模塊和用戶界面模塊。 傳感器模塊:該模塊負責(zé)采集家庭環(huán)境中的各種傳感器數(shù)據(jù),例
    的頭像 發(fā)表于 01-25 09:46 ?1416次閱讀