




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python網絡爬蟲第三單元
爬取APP數據教學概述概述
APP(Application),也稱為手機軟件或應用軟件,主要指安裝在智能手機上的軟件,完善原始系統(tǒng)的不足與個性化。使手機完善其功能,為用戶提供更豐富的使用體驗的主要手段。手機軟件的運行需要有相應的手機系統(tǒng),目前主要的手機系統(tǒng)有:蘋果公司的iOS系統(tǒng)、谷歌公司的Android(安卓)系統(tǒng)。
隨著智能手機的普及,人們在溝通、社交、娛樂等活動中越來越依賴于手機app軟件。手機軟件是通過分析,設計,編碼,生成軟件,而手機軟件是一種特殊的軟件。
APP中主要做到的效果是數據展示和用戶交互,而數據的來源,也就是本次學習情境的目標所在,是通過HTTP和Socket通信方式與后臺服務器定義的接口進行交互的。教學概述教學導航知識重點Fiddler及
Android模擬器的安裝使用。知識難點利用
Fiddler及
Android模擬器
進行爬取app項目開發(fā)。推薦教學方式從
Fiddler及
Android模擬器
功能進行介紹,讓學生有大體了解實際爬取app項目開發(fā),讓學生掌握如何使用。建議學時8學時推薦學習方法通過老師講解掌握
Fiddler及
Android
模擬器基本概念,然后進行實操一步步通過Fiddler及
Android模擬器構建爬蟲項目,加深印象。必須掌握的理論知識Fiddler的使用;網絡交互數據解析;必須掌握的技能Fiddler的安裝和配置;Fiddler的使用;網絡交互數據解析;模擬器的安裝配置。第三單元
爬取APP數據0304Fiddler與模擬器的整合關聯(lián)Fiddler和模擬器分析并確定目標數據構建項目采集數據0102情境一:使用Fiddler+Requests爬取新聞類APP接口數據01030204情景概述知識準備案例講解總結PART01情境概述情境一:使用Fiddler+Requests爬取新聞類APP接口數據情境概述學習情境描述1.教學情境描述:通過對Fiddler工具的安裝、配置和使用來定位數據訪問具體細節(jié);通過對真機或模擬器APP數據訪問和用戶交互操作的數據和行為解析;通過Requests或其他爬蟲技術的應用,爬取手機應用APP交互數據。2.關鍵知識點:Fiddler的安裝和配置、Fiddler的使用、網絡交互數據解析、模擬器的安裝配置、APP的應用、Requests數據請求、JSON數據解析、CSV數據存儲。3.關鍵技能點:Fiddler的使用、模擬器的安裝配置、Requests數據請求、JSON數據解析、CSV數據存儲。
情境一:使用Fiddler+Requests爬取新聞類APP接口數據情境概述本節(jié)課的學習目標理解APP應用數據交互和用戶行為交互原理。掌握Fiddler工具安裝配置。掌握模擬器的安裝配置。掌握Fiddler和模擬器的整合。掌握Fiddler定位解析網絡數據交互功能。掌握Requests網絡爬蟲技術。掌握JSON數據格式并解析。掌握CSV數據格式并存儲。
情境一:使用Fiddler+Requests爬取新聞類APP接口數據情境概述本節(jié)課的任務書完成Fiddler軟件的安裝配置。完成模擬器軟件的安裝配置。完成Fiddler與模擬器的整合。使用Fiddler定位新聞類APP數據交互接口與數據結構。使用Requests獲取接口數據。使用JSON解析接口數據。使用CSV存儲APP數據。
情境一:使用Fiddler+Requests爬取新聞類APP接口數據PART02知識準備情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備引導問題APP數據交互和Web數據交互一樣嗎?如果不一樣,有什么不一樣?如果APP和Web數據交互不同,有什么不同?定位并抓取APP數據和Web數據一樣嗎?如果不一樣,有什么不一樣?我們可以通過什么方式定位APP數據接口?定位APP數據可能會遇到哪些問題?如何獲取、解析、存儲APP接口數據?
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備知識點介紹Fiddler介紹Fiddler安裝與配置Fiddler應用Android
模擬器介紹Android
模擬器安裝與配置
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備思維導圖
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備Fiddler介紹
Fiddler是一個HTTP的調試代理,以代理服務器的方式,監(jiān)聽系統(tǒng)的HTTP網絡數據流動。Fiddler可以讓你檢查所有的HTTP通訊,設置斷點,以及Fiddler所有的“進出”的數據。Fiddler還包含一個簡單卻功能強大的基于JScript.NET事件腳本子系統(tǒng),它可以支持眾多的HTTP調試任務。Fiddler安裝與配置
Fiddler是一款軟件工具,以下是相關操作。1.1.下載軟件
Fiddler有各種不同的版本,你可以根據需要下載,官網下載地址:
/download/fiddler情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.2.安裝軟件
運行下載的Fiddler安裝包:FiddlerSetup.exe,選定安裝地址,默認安裝即可,效果如圖3-2所示。情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.2.安裝軟件
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置
打開Fiddler,效果如圖3-3所示
圖3-3Fiddler安裝情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持
a1:默認情況下,Fiddler不會捕獲和解密安全的HTTPS流量。要捕獲通過HTTPS發(fā)送的數據,需要啟用HTTPS流量解密。配置項位于Tools>Options>HTTPS,配置如圖3-4所示。
圖3-4啟用HTTPS流量解密情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持也可以設置跳過特定的主機流量解密,配置如圖3-5所示。
圖3-5過濾指定主機情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持HTTPS協(xié)議是安全協(xié)議,通常需要安全密鑰驗證等。本次APP移動端數據偵聽過程安全驗證要求更高,為了在保證安全的情況下提高效率,可以將服務器密鑰驗證忽略,并將FiddlerRootCertificate導出并導入到對應Android機器中。忽略密鑰驗證如圖3-6所示,導出RootCertificate如圖3-7所示。情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持
圖3-6忽略安全密鑰校驗情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持
圖3-7導出RootCertificate情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置b.允許遠程客戶端連接
配置允許遠程客戶端連接,保持Fiddler和Android機器保持長連接狀態(tài)。配置項位于Tools>Options>Connections,配置如圖3-8所示。
圖3-8允許客戶端遠程連接情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置c.配置客戶端應用目標端口
配置客戶端應用目標端口,保持Fiddler和Android機器連接狀態(tài)。配置項位于Tools>Options>Connections,配置如圖3-9所示。
圖3-9配置客戶端應用目標端口情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備Fiddler應用
Fiddler的主界面分為工具面板、會話面板、監(jiān)控面板、狀態(tài)面板。我們需要認知的主要是會話面板和監(jiān)控面板。1.1.會話面板
會話面板效果如圖3-10所示:其中每一列所對應的含義分別是:FiddlerID號、URL請求地址、結果代碼、協(xié)議、主機名、內容/流量大小、緩存之、內容類型、進程名及ID、注釋以及Web會話的任何自定義列。
圖3-10會話面板情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備Fiddler應用
Fiddler的主界面分為工具面板、會話面板、監(jiān)控面板、狀態(tài)面板。我們需要認知的主要是會話面板和監(jiān)控面板。1.2.監(jiān)控面板
監(jiān)控面板效果如圖3-11所示:
圖3-11監(jiān)控面板情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備Fiddler應用
監(jiān)控面板根據需要有多個視圖窗口,以下介紹幾個常用視圖。a.查看Web會話性能統(tǒng)計信息Web會話性能統(tǒng)計信息可以直接在監(jiān)控面板中的Statistics窗口查看,效果如圖3-12所示。
圖3-12查看Web會話統(tǒng)計信息情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備Fiddler應用
b.查看網絡會話內容
Web網絡會話內容可以直接在監(jiān)控面板中的Inspectors窗口查看,效果如圖3-13所示。
圖3-13查看Web會話內容情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.Fiddler配置a.配置HTTPS支持HTTPS協(xié)議是安全協(xié)議,通常需要安全密鑰驗證等。本次APP移動端數據偵聽過程安全驗證要求更高,為了在保證安全的情況下提高效率,可以將服務器密鑰驗證忽略,并將FiddlerRootCertificate導出并導入到對應Android機器中。忽略密鑰驗證如圖3-6所示,導出RootCertificate如圖3-7所示。情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備Fiddler應用
b.查看網絡會話內容
Web網絡會話內容可以直接在監(jiān)控面板中的Inspectors窗口查看,效果如圖3-13所示。
圖3-13查看Web會話內容情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備Android模擬器介紹
Android模擬器可在您的計算機上模擬Android設備,這樣您就可以在各種設備上以及各個AndroidAPI級別測試您的應用,而無需擁有每個實體設備。
模擬器幾乎可以提供真正的Android設備所具備的所有功能。您可以模擬來電和短信、指定設備的位置、模擬不同的網速、模擬旋轉及其他硬件傳感器、訪問GooglePlay商店,等等。從某些方面來看,在模擬器上測試應用比在實體設備上測試要更快、更容易。例如,將數據傳輸到模擬器的速度比傳輸到通過USB連接的設備更快。
本次演示與使用的是“夜神模擬器”。夜神安卓模擬器是一款采用類手機界面視覺設計的PC端桌面軟件,采用世界領先的內核技術(基于Android7.1.2版本內核針在電腦上運行深度開發(fā)),具有同類模擬器中較快的運行速度和較穩(wěn)定的性能。情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.1.下載軟件
官網下載地址:1.2.安裝軟件
運行下載的Fiddler安裝包:nox_setup_v_full.exe,選定安裝地址,默認安裝即可,安裝成功后啟動效果如圖3-15所示。
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.2.安裝軟件
圖3-15夜神模擬器啟動效果情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.模擬器配置
默認啟動的模擬器默認是平板版本,不方便也不適宜APP的操作,所以需要調整軟件設置。找到瀏覽器設置中的性能設置下的分辨率設置,首先將其設置為手機版;再根據橫屏或縱屏的配置選擇分辨率,本次設置為1080x1920,設置效果如圖3-16。
圖3-16分辨率設置情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備
Fiddler安裝與配置1.3.模擬器配置
重啟模擬器,效果如圖3-17。
圖3-17重啟模擬器情境一:使用Fiddler+Requests爬取新聞類APP接口數據PART03案例講解情境一:使用Fiddler+Requests爬取新聞類APP接口數據案例講解APP網絡爬蟲的實際項目開發(fā)
實例:“獲取騰訊新聞APP新聞列表”。
圖3-18可視化會話傳輸時間線情境一:使用Fiddler+Requests爬取新聞類APP接口數據案例講解APP網絡爬蟲的實際項目開發(fā)
步驟:確定目標應用關聯(lián)Fiddler和模擬器分析并確定目標數據安裝環(huán)境構建項目編寫數據采集程序運行程序情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
1.確定目標應用
爬取網頁數據和爬取APP應用數據在過程中有所不同,所以過程描述會有所偏差,請大家先理解APP數據爬取的原理。
在確定正式數據之前,先選定應用。我們明確目標數據是新聞類數據列表,所以將APP類型限定在新聞類中,并在此基礎上選定了“騰訊新聞APP”作為演示案例。
下載并安裝騰訊新聞APP,打開騰訊新聞APP首頁如圖3-18所示??梢钥吹津v訊新聞將新聞內容分為了:要聞、視頻、推薦、東莞、抗議、娛樂、體育、游戲、軍事、NBA等等。我們以首頁要聞為例展示操作。
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
2.關聯(lián)Fiddler和模擬器
在手機應用中,無法像Web一樣打開調試工具,并定位數據源。要進行數據源分析和目標數據確立,我們需要使用額外的網絡定位和分析工具:Fiddler。所以,首先需要關聯(lián)Fiddler和模擬器,以便于定位和分析網絡數據。
需要執(zhí)行以下步驟:
a.獲取Fiddler所在機器IP在現(xiàn)有Fiddler配置的基礎上綁定模擬器,只需要將模擬器和Fiddler綁定在一個網段和端口上即可監(jiān)聽網絡變化,所以首先要知道Fiddler所在機器IP地址,可以使用命令獲取,以下是相關指令:$ipconfig情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
2.關聯(lián)Fiddler和模擬器獲取IP地址效果如圖3-19:
圖3-19獲取IP地址情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
2.關聯(lián)Fiddler和模擬器b.配置模擬器網絡打開模擬器,進入設置中的WLAN。長按已連接WIFI,修改網絡配置,位置如圖3-20所示。
圖3-20配置模擬器網絡情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
2.關聯(lián)Fiddler和模擬器b.配置模擬器網絡
圖3-21WIFI代理配置情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
2.關聯(lián)Fiddler和模擬器c.驗證關聯(lián)狀態(tài)分別打開Fiddler和模擬器,清空所有數據及進程,打開“騰訊新聞APP”,查看Fiddler頁面效果,效果如圖3-22所示:
圖3-22模擬器與Fiddler關聯(lián)驗證情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
2.關聯(lián)Fiddler和模擬器c.驗證關聯(lián)狀態(tài)可以看到Fiddler中可以截取到Process為noxvmhandle:13652,表明可以監(jiān)聽到模擬器網絡操作,關聯(lián)成功。情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
3.分析并確定目標數據
關聯(lián)成功,并獲取到一系列模擬器網絡操作數據。接下來,我們就需要從這一系列的網絡請求中過濾出我們的目標數據:新聞列表。經過Fiddler的過濾、排序等操作,最終查找到騰訊新聞APP請求Host為
,新聞列表請求為:/getQQNewsUnreadList?chlid=news_news_top&page=0&channelPosition=0&forward=2&last_id=20210505V02Q5700&last_time=1620276099&user_chlid=news_news_recommend,news_news_dg,news_news_antip,news_news_ent,news_news_sports,news_news_game,news_news_mil&lc_ids=TWF2021050600229600,20210506V02XF400,20210505A00K3100,NEW2016111603351800&showed_rec_channels=&hot_module_user_switch=0&needSpreadAds=1&rtAd=1&new_user=0&omgid=c3d0c6a4e417bd456c5a4d07fae0aa027026001021631e&QIMEI36=286d998beb989d32e8e7c1b2100018f15415&devid=172b5a0b62909ee5&appver=25_android_6.3.50&uid=172b5a0b62909ee5&trueVersion=6.3.50&suid=8gMc3n5d6IwYsTva4QZy&qimei=866174917877926&Cookie=lskey%3D;skey%3D;uin%3D;%20luin%3D;logintype%3D0;%20suid%3D8gMc3n5d6IwYsTva4QZy;%20main_login%3D;%20&qn-sig=b544dc57120268c1fac32f80638cec24&qn-rid=1005_eb520e15-b16f-48b0-88c2-97ee380089b5&qn-newsig=cf071c082b9f225834472152cae7b389ebef702b833217db8b6ff69c24ef84f4,具體定位效果如圖3-23所示。情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
3.分析并確定目標數據
圖3-23定位騰訊新聞列表情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
3.分析并確定目標數據
網絡接口請求響應數據為JSON格式,數據結構樣式如圖3-24所示。
圖3-24騰訊新聞列表接口數據情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
3.分析并確定目標數據
經過以上過程分析,得到結論:騰訊新聞APP數據交互是通過HTTPS網絡接口,POST方式傳輸參數,獲取JSON格式數據的過程,我們只需要定位到具體接口地址,就可以獲取到想要的數據了。根據數據交互結果數據結構,得到本次新聞列表數據結構字段有:id、標題、長標題、新聞來源、查看數、評論數、標簽、新聞類型、質量評分、發(fā)布時間、縮略圖、大圖、詳情地址。
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
4.安裝環(huán)境
本次項目使用環(huán)境為以下內容:本地語言環(huán)境:Python3.8編譯工具:PyCharm2021.2網絡請求框架:Requests2.25.1網頁解析框架:JSON數據存儲框架:CSV
情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
5.構建項目
在準備工作都完成之后,即可通過工具PyCharm構建項目,并開始進行項目開發(fā)了。使用PyCharm構建基本Python項目:Learning_Situation_6,效果如圖3-25所示。
圖3-25構建項目情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
6.編寫數據采集程序
在創(chuàng)建的項目:Learning_Situation_6中構建網頁爬蟲程序,以下是具體操作步驟。6.1.構建可執(zhí)行文件
創(chuàng)建網絡爬蟲可執(zhí)行文件:spider_app_qqnews.py.py。6.2.導入模塊importrequestsimportjsonimportcsvfromfake_useragentimportUserAgent情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
6.編寫數據采集程序6.3.構建網絡請求函數#網絡請求函數->網絡接口數據defgetData(url,headers=headers):#HttpPOST網絡請求resp=requests.post(url=url,data=data,headers=headers)#指定網絡請求響應編碼resp.encoding='UTF-8'#返回接口響應數據對應的JSON對象returnresp.json()情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
6.編寫數據采集程序
6.4.構建新聞數據對象
具體代碼跟隨課件對應章節(jié)代碼。6.5.構建新聞列表解析函數defanalizesData(json):list=[]foriteminjson['newslist']:ifitem['articletype']=='525':foriteinitem['newsModule']['newslist']:list.append(analizesNews(item=ite))else:list.append(analizesNews(item=item))returnlist情境一:使用Fiddler+Requests爬取新聞類APP接口數據知識準備APP網絡爬蟲的實際項目開發(fā)
6.編寫數據采集程序6.6.構建單條新聞解析函數
具體代碼跟隨課件對應章節(jié)代碼6.7.構建數據存儲函數定義數據存儲函數,將所有QQNews對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZGXK 024-2024 青儲玉米品種試驗規(guī)范
- 二零二五年度企業(yè)代為管理員工社保繳費及報銷流程合同
- 二零二五年度購房按揭貸款利率調整合同
- 2025年度酒店入住智能家居體驗合同
- 2025年度汽車零部件訂車合同違約賠償標準及責任界定
- 二零二五年度公寓樓出租合同樣本(含精裝修、家具家電及物業(yè)費)
- 二零二五年度醫(yī)院藥劑科藥品配送與勞務合作合同
- 二零二五年度臨時項目經理聘用與項目風險預警協(xié)議
- 二零二五年度租賃型住房委托管理服務合同
- 二零二五年度旅游產業(yè)投資合作框架協(xié)議
- 生 物植物的三大作用-說課課件-2024-2025學年人教版生物七年級上冊
- 2024年新課標卷高考化學試卷試題真題答案詳解(精校打印版)
- 500-3000總噸船舶大副培訓大綱(2021版)
- 2024至2030年中國錢幣類收藏品行業(yè)市場前景調查及投融資戰(zhàn)略研究報告
- 三級安全培訓考試題附參考答案(滿分必刷)
- 高一英語完形填空專項訓練100(附答案)及解析
- 機房基礎設施運行維護管理標準規(guī)范
- 老年心房顫動診治中國專家共識(2024)解讀
- 部編版八年級上冊歷史期中復習重點總結
- 2024年揚州市職業(yè)大學單招職業(yè)適應性測試題庫1套
- 消防安全技術綜合能力要點概述
評論
0/150
提交評論