




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